您的位置:首页
Project Euler:Problem 87 Prime power triples
2017-04-27 10:35
791 查看
The smallest number expressible as the sum of a prime square, prime cube, and prime fourth power is 28. In fact, there are exactly four numbers below fifty that can be expressed
in such a way:
28 = 22 + 23 + 24
33 = 32 + 23 + 24
49 = 52 + 23 + 24
47 = 22 + 33 + 24
How many numbers below fifty million can be expressed as the sum of a prime square, prime cube, and prime fourth power?
先推断数的大致范围:sqrt(50000000)=7081
求出2~7081之间的全部质数
然后三层循环便利出全部能表示出的50000000以内的整数
in such a way:
28 = 22 + 23 + 24
33 = 32 + 23 + 24
49 = 52 + 23 + 24
47 = 22 + 33 + 24
How many numbers below fifty million can be expressed as the sum of a prime square, prime cube, and prime fourth power?
先推断数的大致范围:sqrt(50000000)=7081
求出2~7081之间的全部质数
然后三层循环便利出全部能表示出的50000000以内的整数
#include <iostream> #include <string> #include <map> using namespace std; bool isPrime[7081]; int prime[2000]; void judge() { for (int i = 2; i < 7081; i++) { if (isPrime[i]) { for (int j = i; j*i < 7081; j++) isPrime[j*i] = 0; } } } int getPrime() { int count = 0; for (int i = 2; i < 7081; i++) { if (isPrime[i]) { prime[count++] = i; } } return count; } int main() { memset(isPrime, true, sizeof(isPrime)); judge(); int num = getPrime(); map<int, int>mp; for (int i = 0; i < num; i++) { int a = prime[i] * prime[i] * prime[i] * prime[i]; if (a>50000000) break; for (int j = 0; j < num; j++) { int b = prime[j] * prime[j] * prime[j]; if (a + b>50000000) break; for (int k = 0; k < num; k++) { int c = prime[k] * prime[k]; if (a + b + c>50000000) break; mp[a + b + c]++; } } } cout << mp.size() << endl; system("pause"); return 0; }
相关文章推荐
- Project Euler:Problem 87 Prime power triples
- Project Euler 87 :Prime power triples 素数幂三元组
- Project Euler:Problem 50 Consecutive prime sum
- Project Euler:Problem 51 Prime digit replacements
- Project Euler:Problem 77 Prime summations
- Project Euler:Problem 41 Pandigital prime
- Project Euler:Problem 60 Prime pair sets
- Project Euler:Problem 16 Power digit sum
- 【Project Euler】【Problem 7】10001st prime
- Project Euler:Problem 77 Prime summations
- 【Project Euler】【Problem 3】Largest prime factor
- Project Euler:Problem 49 Prime permutations
- (Problem 41)Pandigital prime
- hdoj-1016-Prime Ring Problem【深搜】
- Project Euler Problem 16 Power digit sum
- Prime Ring Problem HDU - 1016 (深搜)
- Chef and Prime Divisors Problem code: CHAPD (GCD问题)
- java 求无限循环小数的循环体/循环部分 project euler problem26
- Prime Ring Problem
- Project Euler – Problem 14