求出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);
}
}
i等于j时i%j==0成立;所以 else if(i==j)永远不可能执行到
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;
} 你可以试试这个代码
# 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-20 18:34
你可以试试这个代码
加return 0作用是啥 ;不加也没出现问题,那区别在哪。我想问下。 小黄练编程 发表于 2021-11-21 12:54
加return 0作用是啥 ;不加也没出现问题,那区别在哪。我想问下。
不用函数的话,你可以当做没区别,不加也可以
页:
[1]