1.判断给定的正整数n是否为素数
//判断正整数n是否为素数(质数)
int isPrimeNum(unsigned n)
{
if(n <= 1) return -1 ;
int i , flag = 1 ;
for(i = 2 ; flag && i <= sqrt(n) ; ++i)
{
if(n % i == 0) flag = 0 ;
}
if(flag) return 1 ;
return 0 ;
}
2.求小于等于n的所有素数
#define BUFSIZE 100000000
char buffer[BUFSIZE+1] ;
int PrimeNum(unsigned n)
{
if(n <= 1) return -1 ;
if(n == 2) return 1 ;
if(BUFSIZE < n) return -1 ;
//memset(buffer , 0 , n+1) ;
int i , j ;
for(i = 0 ; i < n + 1 ; ++i)
if(i % 2 == 0) buffer[i] = '0' ;
else buffer[i] = '1' ;
for(i = 3 ; i <= sqrt(n) ; ++i)
{
if(buffer[i] == '1')
for(j = i + i ; j < n + 1 ; j += i)
buffer[j] = '0' ;
}
buffer[2] = '1' ;
for(i = 2 ; i <= n ; ++i)
if(buffer[i] == '1')
printf("%d " , i) ;
return 0 ;
}