Saniow
2021-08-31 15:05
采纳率: 100%
浏览 101

求3~100内的所有素数和

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

  • 好问题 提建议
  • 收藏

5条回答 默认 最新

  • joel_1993 2021-08-31 15:44
    已采纳

    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
    
    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • Pliosauroidea 2021-08-31 15:12
    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;
    }
    

    有帮助望采纳

    评论
    解决 1 无用
    打赏 举报
  • 红尘摆渡803 2021-08-31 15:21

    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了

    评论
    解决 1 无用
    打赏 举报
  • bostonAlen 2021-08-31 15:48
    #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;
    }
    
    评论
    解决 1 无用
    打赏 举报
  • 苏艾 2021-08-31 15:07

    一个一个的加

    评论
    解决 无用 1
    打赏 举报

相关推荐 更多相似问题