中易网

main() {int i,m,n=0,k; for(m=101;m <=200;m=m+2) {k=sqrt(m); for(i=2;i <=k;i+

答案:3  悬赏:60  
解决时间 2021-01-14 12:29
  • 提问者网友:自食苦果
  • 2021-01-14 07:25
main() {int i,m,n=0,k; for(m=101;m <=200;m=m+2) {k=sqrt(m); for(i=2;i <=k;i+
最佳答案
  • 二级知识专家网友:未来江山和你
  • 2021-01-14 07:56
m=101是因为100不是素数,根本不需判断,不过写100也没问题,效率问题;
+2是因为就保证判断的数不会是偶数(偶数肯定不是素数),同样是效率问题;
第三个问题嘛,你程序没写出来。
追问:#include
#include
void main()
{
int m,k,i,n;
n=0;

for(m=101;m <=200;m=m+2)
{
k=sqrt(m);
for(i=2;i <=k;i++)
{
if(m%i == 0)
{
printf( "%d\t ",m);
n=n+1;
break;
}
}
if(n%10==0)
{
printf( "\n ");
}
}
}
追答:if(m%i==0)后面的语句是输出非素数啊。而你要输出素数应该这么写:
……
for(i=2;i <=k;i++)
if(m%i == 0) break;
if(i==k+1)printf("%d\t ",m);
……
全部回答
  • 1楼网友:患得患失的劫
  • 2021-01-14 09:35
其实程序可以写得简单点的。
#include<iostream.h>
void main()
{
int m;for(m=101;m<=200;m++)
for(i=2;i<m;i++)
{ if m%i==0; break;}
  • 2楼网友:渊鱼
  • 2021-01-14 08:49
程序有误啊输出的有是素数也有不是素数。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息