用c语言写一个判断素数的函数ifp。在主函数中调用该函数,输出整型数组a[10] 中的每个素数,并统计素数的个数和所有素数的和。
时间: 2024-04-30 22:22:47 浏览: 93
```c
#include <stdio.h>
int ifp(int n) {
if (n < 2) return 0;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return 0;
}
return 1;
}
int main() {
int a[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int count = 0, sum = 0;
for (int i = 0; i < 10; i++) {
if (ifp(a[i])) {
printf("%d ", a[i]);
count++;
sum += a[i];
}
}
printf("\n");
printf("count = %d, sum = %d\n", count, sum);
return 0;
}
```
相关问题
写一个判断素数的函数ifp。在主函数中调用该函数,输出整型数组a[10] 中的每个素数,并统计素数的个数和所有素数的和。
以下是Python代码实现:
```python
def ifp(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
a = [23, 45, 67, 89, 12, 34, 56, 78, 90, 11]
count = 0
sum = 0
for i in a:
if ifp(i):
print(i)
count += 1
sum += i
print("素数个数:", count)
print("素数总和:", sum)
```
输出结果为:
```
23
67
89
11
素数个数: 4
素数总和: 190
```
写c函数,从给定的输入文本文件中按行读入,并按行写入给定的输出文件中。要求:1)去除每行的前导空格或制表符。2)每行前加行号。
好的,可以试试以下的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
if (argc < 3) {
fprintf(stderr, "Usage: %s input_file output_file\n", argv[0]);
return 1;
}
FILE *ifp = fopen(argv[1], "r");
if (!ifp) {
fprintf(stderr, "Cannot open input file %s\n", argv[1]);
return 1;
}
FILE *ofp = fopen(argv[2], "w");
if (!ofp) {
fprintf(stderr, "Cannot open output file %s\n", argv[2]);
fclose(ifp);
return 1;
}
char *line = NULL;
size_t len = 0;
ssize_t read;
int lineno = 1;
while ((read = getline(&line, &len, ifp)) != -1) {
int i;
for (i = 0; i < read; i++) {
if (line[i] != ' ' && line[i] != '\t') break;
}
fprintf(ofp, "%d\t%s", lineno++, line+i);
}
free(line);
fclose(ifp);
fclose(ofp);
return 0;
}
```
使用时可以在命令行输入:
```
$ ./program input.txt output.txt
```
其中 `program` 为编译后的可执行文件名,`input.txt ` 为输入文件名, `output.txt ` 为输出文件名。经过程序处理, `output.txt` 的格式应该符合你的要求了。
阅读全文