用C语言写在main函数中输入一批正整数(以零或负数作为输入结束标志),求其中素数的和。要求定义和调用函数prime(n)判断n是否为素数,当n为素数时函数返回值为1,否则返回值为0。
时间: 2024-02-03 07:14:49 浏览: 83
C语言程序设计-求给定正整数m以内的素数之和;例如:当m=20时,函数值为77;
5星 · 资源好评率100%
以下是代码实现:
```c
#include <stdio.h>
int prime(int n) {
if (n <= 1) { // 1不是素数
return 0;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0; // n能被整除,不是素数
}
}
return 1; // n是素数
}
int main() {
int sum = 0, n;
printf("请输入一批正整数(以零或负数作为输入结束标志):\n");
scanf("%d", &n);
while (n > 0) {
if (prime(n)) {
sum += n;
}
scanf("%d", &n);
}
printf("素数的和为:%d\n", sum);
return 0;
}
```
大致思路是:先定义一个函数`prime`用于判断一个数是否是素数,然后在`main`函数中循环读入一批正整数,如果是素数就加入到`sum`中,最后输出`sum`即可。
阅读全文