2014-12-05
素数打表法
memset(f, 0, sizeof(f));
f[1]=1 ;
i=2;
while(i<=500000)
{
for(j=i*2; j<=1000000; j+=i )
{
f[j]=1;
}
i++;
while(f[i]==1)
{
i++;
}
}
直接筛选法
1 bool isPrime(long long n) 2 { 3 if (n <= 3) 4 { 5 return n > 1; 6 } 7 else if (n % 2 == 0 || n % 3 == 0) 8 { 9 return false; 10 } 11 else 12 { 13 for (long long i = 5; i * i <= n; i += 6) 14 { 15 if (n % i == 0 || n % (i + 2) == 0) 16 { 17 return false; 18 } 19 } 20 return true; 21 } 22 }