阅读教材例4-9,并仿造其编程,输出100~200之间的所有素数,每行输出8个。

如题所述

#include<stdio.h>
#include<math.h>
void main()
{
int m,i,j=0;
int k;
for(m=100;m<=200;m++)//200后面的逗号,改为分号;
{
k=(int)sqrt((double)m);//强制转换一下就不会有警告了
for(i=2;i<=k;i++)//k后面的逗号,改为分号;
{
if(m%i==0)
break;
}

// 判断是否输出放到循环里面,才能输出所有的素数
if(i>=k+1)
{
printf("%d ",m);
j++;
if(j%8==0) printf("\n");
}
}

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-24
#include <stdio.h>
void main()
{
int i,n,k=0,j=0;
for(n=100;n<=200;n++)
{
for(i=2;i<=n;i++)
if(n%i==0)
k++;
if(k==1)
{
printf("%4d",n);//判断是不是素数并输出
j++;
}
if(j==8)
{
printf("\n");//输出8个数字后换行
j=0;
}
k=0;
}
}
相似回答