求3~100内的所有素数和

一个C语言编程题,求3~100内的所有素数和

C语言如下(用的筛法):

#include <stdio.h>
#include <stdbool.h>
#include <math.h>
const int n = 100;
void main(){
    bool a[n];
    int i, j, s;
    for(i=0; i<n; i++) a[i]=true;
    a[0] = false;
    for(i=0; i<sqrt(n); i++) if(a[i]) for(j=2*i+1; j<n; j+=i+1) a[j]=false;
    for(i=2, s=0; i<n; i++) if(a[i]) s+=i+1;
    printf("sum=%d",s);
}

结果是:

sum=1058
printf("1058\n");//暴力打表,O(1)
#include <stdio.h>
#include <stdlib.h>
#define max 100
int main(int argc, char const *argv[])
{
    int sum = 0;
    for (int i = 3; i < max; i++)
    {
        sum += i * isPrime(i);
    }
    printf("%d",sum);
}
int isPrime(int n)
{
    for (int i = 2; i < n; i++)
    {
        if (n % i == 0)
            return 0;
    }
    // printf("%d\n",n);
    return 1;
}

有帮助望采纳

a boolean=true;
b=0;
for i in range(3,101):
for q in range(2,i):
if i%q==0:
a=false
if a==true:
b=b+i
print(b)
代码不知道对不对,思路是这样,好久没用过python了

#include <stdio.h>
int main(int argc,char *argv[]){
    int i,s,j;
    for(s=0,i=3;i<100;i+=2){//遍历3~100间的奇数
        for(j=3;j*j<=i;j+=2)//用3~i的平方根的整数除i
            if(i%j==0)//有整除情况则不是素数
                break;
        if(j*j>i)//是素数则将其累加到s
            s+=i;
    }
    printf("3~100内的所有素数和: %d\n",s);//输出结果
    return 0;
}

一个一个的加