素数的快速筛选法两种
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 }