#include<stdio.h>
int IsPrime( int x); //函数原型声明
int main()
{
int n, sum;
printf("Please input n(n>1):");
scanf_s("%d", &n);
sum = IsPrime(n); //调用函数,将返回值存入sum
printf("sum of prime numbers:%d", sum);
return 0;
}
int IsPrime(int x) //函数定义
{
int i, n, h = 2;
for (i = 2; i <= x; i++)
{
for (n = 2; n <= i; n++)
{
if (n == 2 && i == 2)
{
printf("%d\n", 2);
}
else if (i % n == 0 && n != i - 1)
{
break;
}
else if (i % n != 0 && n == i - 1)
{
h = h + i;
printf("%d\n", i);
break;
}
}
}
return h;
}
关键在于素数的判断
这里可以不使用函数
使用嵌套循环。
测试用例:
注:编者水平有限,若有错误欢迎指正,或者有更好的解决办法欢迎提出讨论