Project Euler problem 44
2012-11-06 12:56
295 查看
哎。。。直接往上枚举就行了。
不过我还是加了点小的优化。。
但是很纯暴力相比感觉没优化多少。。都是O(n ^ 2)的
不过我还是加了点小的优化。。
但是很纯暴力相比感觉没优化多少。。都是O(n ^ 2)的
#include <iostream> #include <cstdio> #include <cstring> #include <ctime> #include <cstdlib> #include <stack> #include <cmath> #define eps 1e-6 #define INF 1000000007 #define PI acos(-1.0) using namespace std; bool ok(int x) { x = x * 12 + 1; int m = (int)sqrt(x * 1.0); if(m * m == x && (m + 1) % 6 == 0) return 1; return 0; } bool gao(int x) { int m = (int)sqrt(x * 1.0); for(int i = 2; i <= m; i++) { if(x % i == 0) { int t = x / i; if((t + 1) % 3 != 0) continue; if(t - 3 * i + 1 < 6) break; int k1 = (t + 1) / 3; int k2 = i; if((k1 + k2) % 2 == 1 || k1 <= k2) continue; int a = (k1 + k2) / 2; int b = (k1 - k2) / 2; if(ok(3 * (a * a + b * b) - a - b)) return 1; } } return 0; } int main() { for(int i = 5; ; i++) { if(gao(i * (3 * i - 1))) { cout << i * (3 * i - 1) / 2 << endl; break; } } return 0; }
相关文章推荐
- Project Euler problem 61
- Project Euler problem 67
- project euler problem 24
- Project Euler Problem 20 Factorial digit sum
- Project Euler Problem 41 Pandigital prime
- Project Euler Problem 32 Pandigital products
- Project Euler Problem 38 Pandigital multiples
- Project Euler Problem 21
- Project Euler Problem 76-整数分拆
- Project Euler Problem 14
- Project Euler problem 31
- Project Euler problem 42
- Project Euler problem 52
- project euler Problem 15
- Project Euler Problem 76-整数分拆
- http://projecteuler.net/problem=26 [Answer:983]
- Project Euler -> problem 1
- project euler problem 5:Smallest multiple
- project euler problem 14
- Project Euler Problem 25 1000-digit Fibonacci number