Primes

There is a basic way to judge whether a number is a prime:

int isprime(int x)
{
    int i;
    float fx,sqrtx;
    if(x<=1)
       return 0;
    else if(x==2)
       return 1;
    else
    {
        if(x%2==0)
          return 0;
        else
        {
            fx=x;
            sqrtx=sqrt(fx);
            for(i=3;i<=sqrtx;i+=2)
               if( x%i==0 )
                  return 0;
            return 1;
        }
    }    
}

sieve of Eratosthenes:

void getPrime()
{//筛法 
    int i,j;
    int bound=sqrt((double)n);
    for(i=2;i<n;i++)prime[i]=1;//将所有的数置1,表示这些数都是素数.
    for(i=2;i<bound;i++)
	{//注意从2开始
      for(j=i+i;j<n;j+=i)//将2的倍数置成0,表示不是素数
		prime[j]=0;
    }
}


Primes

上一篇:生成随机数


下一篇:iphone ios 消息通信机制NSNotificationCenter