编写程序,计算并输出0到64之间的所有素数,控制每行输出六个数据。

开头是 # include<stdio.h>
void main
的~

#include <stdio.h>
#include <math.h>

void main(){
int checkPrime(int);
int i,n=0;
for(i=2;i<=64;i++){//素数是从2开始的故省去了1、0直接从2开始
if(checkPrime(i)){
n++;//计数加1,用于判断每行输出的数据的个数
printf(" %-6d",i); //输出该素数
if(n%6==0) printf("\n\n"); //判断每行有6个则输出回车符换行
}
}
}

int checkPrime(int a){//自定义函数判断是否是素数
for(int i=2;i<=sqrt(a);i++){
if(a%i==0)
return 0;
}
return 1;
}

建议:如果是真心想学c语言,这样的问题应该自己做出来,当然别人的可以参考。
参考主要是比对自己的程序有什么长处和不足,然后借鉴别人程序中思想方法的长处,时间长了就可以有很多的进步。如果单纯是为了应付课程的话,就算我没有说,呵呵!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-19
#include <stdio.h>
bool IsMersenne(int x)
{
//判断是否为素数
for(int i=2;i<x;i++)
{
if(0==x%i)
return false;
}
return true;
}

int main()
{
int iCount = 0;
for(int i=0;i<=64;i++)
{
if(IsMersenne(i))
{
printf(" %-2d ",i);
iCount++;
if(iCount>0&&iCount%6==0)
printf("\n");
}
}
printf("\n");
return 0;
}
第2个回答  2009-04-19
int prime[65];
int n=64;

for (i=0; i<=n; i++)
prime[i]=1;
for (i=2; i<=n; i++)
if (prime[i]==1)
for (j=i+i; j<=n; j=j+i)
prime[j]=0;

for(i=2;i<=n;i++)
if(prime[i]==1)
printf("%d是素数\n",i);