新人求解哪里出了问题?

我想求3到n之间的所有素数之和,输入n,思路是定义一个t初值为0,如果能被2-n-1之间的
数整除就+1,不能就+0,通过判断t值是否为0判断是否为素数,然后求和。

 #include <stdio.h>
int main()
{
    int i,n,sum=0,j,t=0;
    scanf("%d",&n);
    for(i=3;i<=n;i++)
      {
          for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
               t=t+1;
            }
            else if(i%j!=0)
                {
                    t=t+0;
                }
        }
        if(t==0)
        {
            sum=sum+i;
        }
      }
    printf("%d",sum);
    return 0;
}

c

1个回答

不谈效率,就按照你这么写,你每次循环开始,都要把t设置为0

#include <stdio.h>
int main()
{
    int i,n,sum=0,j,t=0;
    scanf("%d",&n);
    for(i=3;i<=n;i++)
      {
          t = 0; //加上
          for(j=2;j<i;j++)
        {
            if(i%j==0)
            {
               t=t+1;
            }
            else if(i%j!=0)
                {
                    t=t+0;
                }
        }
        if(t==0)
        {
            sum=sum+i;
        }
      }
    printf("%d",sum);
    return 0;
}
Nocrossnocrown
Nocrossnocrown 懂了,谢谢大神
12 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复Nocrossnocrown: 用来判断是否所有的都没有匹配到,如果有匹配,has=1,否则一直是0。如果狗没有匹配,输出no
12 个月之前 回复
Nocrossnocrown
Nocrossnocrown 谢谢大神,上次程序我问了一个问题!has是什么意思,求大神解答
12 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!