c语言编程:求100以内的全部素数,每行输出10个 怎么做啊

如题所述

//以前做过这题,就复制过来了
#include <stdio.h>
#include <math.h>
int main(void)
{int x,k,flag,n=0; /*n用来控制每行输出10个数*/
for(x=2;x<=100;x++)
{flag=1;
for(k=2;k<=sqrt(x);k++)
if(x%k==0) {flag=0; break;}
if(flag==1)
{if(n%10==0) printf("\n"); /*10个数一行*/
n++;
printf("%5d",x);
}
}
getchar();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-04
#include <stdio.h>
#define N 100
int main()
{
int a[N],i=2,temp=0,j=0,tempp,sum,total=0;

while(i<=N)
{
i++;
temp=i;
if (i==2)
{a[j]=i;j++;}
else
while(temp)
{ temp--;
if (temp==1)
{ a[j]=i;j++;
break;}
else if(temp!=1&&(i%temp)==0)
break;
}
}
sum=j;
for(tempp=0;tempp<j;tempp++)
{ if(tempp%10==0)
printf("\n");
printf("%d\t",a[tempp]);
total+=a[tempp];

}
printf("\n\nThe total is %d\n",sum); //计算质数之和,不要可删除这行
printf("The total is %d\n",total); //计算质数个数,不要可删除这行

return 0;
}本回答被网友采纳
第2个回答  2012-04-04
#include <stdio.h>
#include <math.h>
int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/
{
int i;
for (i=2; i<=(int)sqrt((double)n); i++)
if (n%i==0) return 0;
return 1;
}
int main(void)
{
int i,j=0;
for (i=2; i<=100; i++)
if(ss(i))
{
j++;
printf("%5d",i);
if (j%10==0) printf("\n");
}
printf("\n");
return 0;
}
相似回答