可用isprime() 判断是否素数
prime[] 素数列表
#ifndef __PRIME_H
#define __PRIME_H
#include<math.h>
/*This include file is used for function sqrt*/
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
unsigned long prime[6543];
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>1lu;
}
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;
}
}
#ifdef __cplusplus
}
#endif /*__cplusplus*/
#endif /*PRIME_H*/
prime[] 素数列表
#ifndef __PRIME_H
#define __PRIME_H
#include<math.h>
/*This include file is used for function sqrt*/
#ifdef __cplusplus
extern "C" {
#endif /*__cplusplus*/
unsigned long prime[6543];
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>1lu;
}
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;
}
}
#ifdef __cplusplus
}
#endif /*__cplusplus*/
#endif /*PRIME_H*/

