小黄练编程 发表于 2021-11-20 16:03:33

求出1000-2000内素数,求解答步骤错哪里。

#include<stdio.h>
main()
{
        inti,j;
        for(i=1000;i<=2000;i++)
        {
                for(j=2;j<i-1;j++)
                        if(i%j==0)
                                continue;
                        else if(i==j)
                                printf("%d",i);
        }
}

jhq999 发表于 2021-11-20 16:38:20

i等于j时i%j==0成立;所以 else if(i==j)永远不可能执行到
               

小鱼儿mxkk 发表于 2021-11-20 18:09:30

jhq999 发表于 2021-11-20 16:38
i等于j时i%j==0成立;所以 else if(i==j)永远不可能执行到

楼上正解,我的思路是:
#include<stdio.h>
#define N 2000 //范围
int main()
{        int a,i,m=0;
for(i=1;i<=N;i++){a=i;}
for(i=1;i<N;i++)
{        if(i==2||i==3||i==5||i==7||i>7&&a%2!=0&&a%3!=0&&a%5!=0&&a%7!=0)
        {printf("%3d",a),m=m+1;}
}
printf("\n有%d个素数\n",m);
return 0;
}

鳗鱼可好吃 发表于 2021-11-20 18:34:19

你可以试试这个代码
# include <stdio.h>
int main()
{
        int a,i;
        for(a=1000;a<2000;a++)
        {
                for(i=2;i<a;i++)
                {
                        if(a%i==0)
                        {
                                break;
                        }
                }
                if(a==i) printf("%d ",a);
        }
        return 0;
}

小黄练编程 发表于 2021-11-21 12:54:56

鳗鱼可好吃 发表于 2021-11-20 18:34
你可以试试这个代码

加return 0作用是啥 ;不加也没出现问题,那区别在哪。我想问下。

鳗鱼可好吃 发表于 2021-11-29 16:15:32

小黄练编程 发表于 2021-11-21 12:54
加return 0作用是啥 ;不加也没出现问题,那区别在哪。我想问下。

不用函数的话,你可以当做没区别,不加也可以
页: [1]
查看完整版本: 求出1000-2000内素数,求解答步骤错哪里。