用c语言写在main函数中输入一批正整数(以零或负数作为输入结束标志),求其中素数的和。要求定义和调用函数prime(n)判断n是否为素数,当n为素数时函数返回值为1,否则返回值为0
时间: 2024-02-13 21:07:58 浏览: 74
输入一个正整数,判断是不是素数(C++)
好的,我明白你的问题了。以下是C语言代码实现:
```
#include <stdio.h>
int prime(int n) { // 判断n是否为素数的函数
if (n < 2) { // 小于2的数都不是素数
return 0; // 返回0表示不是素数
}
for (int i = 2; i < n; i++) { // 遍历2到n-1的所有数
if (n % i == 0) { // 如果n能被i整除
return 0; // 返回0表示不是素数
}
}
return 1; // 如果上述条件都不满足,则说明n是素数,返回1表示是素数
}
int main() {
int sum = 0; // 记录素数之和
int num; // 输入的数
do {
printf("请输入一个正整数(以0或负数作为输入结束标志):");
scanf("%d", &num); // 输入数
if (prime(num)) { // 如果num是素数
sum += num; // 将num加入素数之和
}
} while (num > 0); // 输入0或负数时结束输入
printf("所有素数之和为:%d\n", sum); // 输出素数之和
return 0;
}
```
在这个程序中,我们用`prime(n)`函数来判断一个数`n`是否为素数。接着在`main()`函数中,我们不断输入数,如果输入的数是素数,就将它加入素数之和`sum`中。当输入0或负数时,输入结束,输出素数之和。
阅读全文