求100以内的素数和,刚学完循环,救救孩子吧😭

img

内循环时,每次都需要重新把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;    
}