我给你一个代码,这个百分百是正确的,且有正确的运行结果,无须调用子函数
希望对你有所帮助,如果还有什么问题,欢迎随时交流 :-)
代码如下:
#include
#include
int main(void)
{
int i, j;
int n;
int sum;
n = 100;
sum = 0;
for (i = 1; i <= n; i++)
{
int r = (int)sqrt(i); /* 求出平方根,减少比较次数 */
for (j = 2; j <= r; j++)
{
if (i % j == 0)
break;
}
if (j > r)
{
printf(" %d +", i);
sum += i;
}
}
printf(" 0 =\n");
printf("%d以内的所有素数的和是: %d\n", n, sum);
return 0;
}
运行结果如下:
1 + 2 + 3 + 5 + 7 + 11 + 13 + 17 + 19 + 23 + 29 + 31 + 37 + 41 + 43 + 47 + 53 + 59 + 61 + 67 + 71 + 73 + 79 + 83 + 89 + 97 + 0 =
100以内的所有素数的和是: 1061
说明: 最后的“+ 0 =”是我为了好看加上的,也可以不加:)