|
|
#2
2010-06-27 19:31
|
根据代码,我自己又写了一个,acm原本的代码里将n与2、3、5、7比较,这样是不是繁琐了?
我的代码是这样的,只要确定素数表中第一个数为2即可,欢迎各位指教:
#include <stdio.h>
void primelist(int *prime,int *k)
{
int j;
int n;
(*k)=0;
prime[(*k)++]=2;
for(n=3; n<=5000; n++)
{
for(j=0; prime[j]*prime[j]<=n; j++)
if(n%prime[j]==0) break;
if(prime[j]*prime[j]>n) prime[(*k)++]=n;
}
}
int main()
{
int i,k,prime[1000];
primelist(prime,&k);
for(i=0; i<k; i++)
{
printf("%4d ",prime[i]);
if((i+1)%9==0) printf("\n");
}
return 0;
}
