注册 登录
编程论坛 C语言论坛

计算【3,m】的所有素数的和,怎么做?大佬们求解

书山压力不大 发布于 2021-04-18 23:10, 923 次点击
#include<stdio.h>
#include<stdlib.h>
void main()
{
    int m,i,j,sum=0;
    int flag;  //根据需要,该变量可以使用,也可以不使用
    scanf("%d",&m);
    if(m<3)
    {
        printf("请输入大于或等于3的数\n");
        system("pause");
        return;
    }
    /*************代码开始**********/
    for(i=3;i<=m;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0);
             {sum+=i;break;}
            
        }
        
    }
    /***********代码结束************/
    printf("所有素数的和为%d\n",sum);
    system("pause");
}

1 回复
#2
apull2021-04-18 23:25
if(i%j==0);你这里一个分号,判断结果执行不了了。
   {sum+=i;break;}
能被整除就不是素数了,不能加到总和里。

程序代码:


/*************代码开始**********/
    for (i = 3; i <= m; i++)
    {
        flag = 1;
        for (j = 2; j  < i; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag)
            sum += i;
    }
    /***********代码结束************/


[此贴子已经被作者于2021-4-19 08:44编辑过]

1