没事做贴个代码,判断是否素数,顺便打个素数表(非原创)。

unsigned long prime[6543];//65535内有6542个素数
void initprime(void);

int isprime(unsigned long x){
	unsigned long i;
	initprime();
	for(i=0;prime[i]*prime[i]<=x;++i)
		if(x%prime[i]==0)return 0;
	return x>1;
}
void initprime(void){
	unsigned short i;
	static unsigned short top=0;
	if(top)return;
	for(prime[top++]=2,i=3;;){
		if(isprime(i))prime[top++]=i;
		if(++i==0)break;
	}
}

posted on 2011-04-07 07:37  成诺  阅读(282)  评论(0编辑  收藏  举报

导航