http://projecteuler.net/problem=35 [Answer:55]
2011-12-06 23:34
483 查看
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { const size_t N = 1000000; const size_t root = 1000; vector<int> isprime(N); fill( isprime.begin(), isprime.end(), 1 ); isprime[0] = 0; isprime[1] = 0; for ( size_t i = 2; i < root; ++i ) { if ( isprime[i] != 0 ) { for ( int j = i + i; j < N; j += i ) { isprime[j] = 0; } } } int count = 0; for ( size_t n = 2; n < N; ++n ) { if ( isprime != 0 ) { size_t tmp = n / 10; size_t highest_weight = 1; while ( tmp != 0 ) { tmp /= 10; highest_weight *= 10; } tmp = n / 10; size_t m = n; while ( tmp != 0 ) { m = m % 10 * highest_weight + m / 10; if ( isprime[m] == 0 ) { break; } tmp /= 10; } if ( tmp == 0 ) { ++count; } } } cout << count << endl; return 0; }
相关文章推荐
- http://projecteuler.net/problem=16 [Answer:1366]
- http://projecteuler.net/problem=38 [Answer:932718654]
- http://projecteuler.net/problem=17 [Answer:21124]
- http://projecteuler.net/problem=18 [Answer:1074]
- http://projecteuler.net/problem=23 [Answer:4179871]
- http://projecteuler.net/problem=26 [Answer:983]
- http://projecteuler.net/problem=32 [Answer:45228]
- http://projecteuler.net/problem=27 [Answer:-59231]
- http://projecteuler.net/problem=30 [Answer:443839]
- http://projecteuler.net/problem=39 [Answer:840]
- http://projecteuler.net/problem=28 [Answer:669171001]
- http://projecteuler.net/problem=36 [Answer:872187]
- http://projecteuler.net/problem=34 [Answer:40730]
- http://projecteuler.net/problem=14 [Answer:837799]
- http://projecteuler.net/problem=19 [Answer:171]
- http://projecteuler.net/problem=25 [Answer:4782]
- http://projecteuler.net/problem=29 [Answer:9183]
- http://projecteuler.net/problem=5 [Answer:232792560]
- http://projecteuler.net/problem=20 [Answer:648]
- http://projecteuler.net/problem=6 [Answer:25164150]