输出m到n之间的素数

2024年11月19日 08:24
有2个网友回答
网友(1):

#include
void main()
{int i,j,m,n,mark=1,k=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{for(j=2;j if(i%j==0)
mark=0;
if(mark==1)
{
if(i!=1&&i!=0)//加上这句,以免输出1,因为1既不是素数,也不是合数
printf("%4d",i);
k++;
}
mark=1;//加上这么一句,因为只要有一个mark==0,后面不改变mark的值
}
if(k==0)
printf("没有素数");
}

网友(2):

#include
int main() 
{
int cnt=0;//素位计数 
int zh=0;
int x;
int y;
int prt;//是否是素数 
int n,m;
scanf("%d %d",&n,&m); 
if(n>0&&m>=n&&m<200){// 判断输入是否正确 
for(x=2;cnt prt=1;// 初始化判断逻辑数为1 (是) 
for(y=2;y if(x%y==0){
prt=0;// X不为素数 
break;// 跳出对于当前X的循环 
}
}
if(prt==1) cnt++;// 素数计数 
if(cnt>=n&&prt==1) zh=zh+x;// 输出n到m之间素数和到zh 
}



}else{
printf(" 你输入的范围不正确(0到200)");
}
printf("%d",zh);

return 0;
}