用C语言写出输出1到1000的素数 每行八个

如题所述

第1个回答  2011-03-31
#include <iostream.h>
#include <malloc.h>
#include "iomanip.h"

int isprame(int p)
{
if (p > 1)
{
for (int i=2;i*i <= p;i++)
{
if (p%i == 0)
{
return 0;
}
}
return 1;
}
else
{
return 0;
}
}

void main()
{
int N;
cin>>N;//输入N,比如1000

int count = 0;
for (int i = 2;i<=N;i++)
{
if(isprame(i))
count++;
}
cout<<count<<endl;

int *prame =(int *) malloc(sizeof(int)*count); //分配了一个动态数组

count = 0;
for (i = 2;i<=N;i++)
{
if(isprame(i))
{
prame[count] = i;
count++;
}
}

for (i=0;i<count;i++)
{
cout<<prame[i]<<setw(5);
if((i+1)%8==0)
cout<<endl;
}

}
第2个回答  2011-03-31
#include <stdio.h>
main()
{
int i,j,k=0;
for(i=1;i<=1000;i++)
{
for(j=2;j<=i/2;j++)
if(i%j==0)break;
if(j>i/2){printf("%d ",i);k++;}
if(k==8){k=0;printf("\n");}
}
}
希望对你有帮助!本回答被提问者采纳
相似回答