C语言编程:输出2到100之间的所有素数,每行输出10个

如题所述

思路:定义一个判断素数函数,接着依次从2到100遍历判断,如果是则输出,每输出是10次输出换行。

参考代码:

#include <stdio.h>
int isp(int n){//判断一个数是否是素数 
int i;
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;

int main ()
{
int i,j=0;
for(i=2;i<=100;i++)
if(isp(i)){//是素数则输出
printf("%d ",i);
j++;//统计输出次数
if((j+1)%10==0) //每输出10次输出换行
printf("\n");
}
return 0; 
}
/*
运行结果:
2 3 5 7 11 13 17 19 23
29 31 37 41 43 47 53 59 61 67
71 73 79 83 89 97
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-10
#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个回答  2008-12-22
#include <stdio.h>
int isP(int n)
{
int m,flag=1;
for(m=2;m<=n/2;m++)
if(n%m==0)
{flag=0;break;}
return flag;
}
void main()
{
int i,j=0;
for(i=2;i<=100;i++)
{
if(isP(i))
{printf("%3d",i);j++;}
if(j==10)
{printf("\n");j=0;}
}
}
第3个回答  2008-12-22
打开文件
FILE*fp;
fp=fopen("prime.txt","w");
写入文件
fprintf(fp,"%d ",a);

程序:
#include <stdio.h>
#include <stdlib.h>

void main()
{
int a,b,c;
FILE*fp;
if((fp=fopen("prime.txt","w"))==NULL)
{
fprintf(stdout,"Can't open file.\n");
exit(1);
}
for(a=2;a<=100;a++)
{
for(b=2;b<a;b++)
{
if(a%b==0)
break;
}
if(b>=a)
{
printf("%5d",a);c++;
{
if c%10=0 print(\n);
}
fprintf(fp,"%d ",a);
}

}
if(fclose(fp)!=0)
fprintf(stderr,"Error closing file\n");
}