内循环时,每次都需要重新把a置0.
修改部分已在代码中标注。代码修改如下,如有帮助,请帮忙采纳一下,谢谢。
#include <stdio.h>
int main()
{
int n,i,a=0,sum = 2;
for(n=3;n<100;n++)
{
a = 0; //这里加上这一句
for(i=2;i<n-1;i++){if(n%i==0) a++;}
if(a==0) sum = sum + n;
else sum = sum;
}
printf("sum=%d",sum);
getchar();
return 0;
}
#include "stdafx.h"
#include<stdio.h>
int isPrime(int n) //求素数,这是最经典的算法代码。建议记住
{
int j;
for (j = 2; j*j <= n; j++)
if (n%j == 0)
return 0;
return 1;
}
int main(void)
{
int i, sum = 0;
for (i = 2; i<100; i++)
if (isPrime(i))
{
sum += i;
}
printf("%d\n", sum);
return 0;
}