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

万能的朋友们,请帮我解答一下这道编程题

JY891 发布于 2020-03-20 22:34, 2429 次点击
从键盘上输入n的值,计算100~n之间的所有素数和。 提示 累加
输入
输入只有一组,即在一行上输入n的值,n必须是大于100小于10000的整数。
输出
输出100~n之间的所有素数之和。
6 回复
#2
JY8912020-03-20 22:37
#include<stdio.h>
int main()
{
    int i,j,n,s=0;
    bool flag;
    scanf("%d",&n);
    flag=true;
    for(j=100;j<=n;j++)
    {
        for(i=2;i<n;i++)
        {    if(j%i==0)
            {   
            flag=false;
            break;   
            }
        }
            if(flag=true)
            s+=j;
    }    printf("%d",s);
}
不知道这个程序错在哪里
#3
forever742020-03-20 23:10
执行完flag=false以后flag就一直是false
o
下边判断的时候应该两个等号只敲了1个,这时它错误地变成了true

[此贴子已经被作者于2020-3-20 23:12编辑过]

#4
万致远醉帥2020-03-24 12:56
做一个素数的函数
#5
maomao123452020-03-24 14:07
flag=true应该为flag==ture
或者做一个函数“sushu”,每一个数都使用一次这个函数,这个函数最好用bool类型的。
#6
return_02020-03-25 19:41
程序代码:

include<stdio.h>
int main()
{
    int i,j,n,s=0;
    bool flag;
    scanf("%d",&n);
    flag=true;
    for(j=100;j<=n;j++)
    {
        for(i=2;i<n;i++)
        {    if(j%i==0)
            {   
            flag=false;
            break;   
            }
        }
            if(flag=true)
            s+=j;
            flag=false;//这一步要更新一下flag,否则他将永远是true
    }    printf("%d",s);
}
#7
wmf20142020-03-25 20:57
大于5的素数只分布在6n两边,这样可以提高计算速度。
1