#include <iostream> #include <vector> #include <cmath> using namespace std; bool esPentagonal(int x) { double n = (sqrt(24.0*x + 1)+1)/6.0; return n==floor(n); } int obtPent(int n) { return (n*(3*n-1))/2; } int main() { vector<int> pentagonals; pentagonals.push_back(1); bool sw = true; int pent,resta; int k = 2; while(sw) { pent = obtPent(k); vector<int>::iterator it = pentagonals.begin(); while(it != pentagonals.end()) { resta = pent - (*it); if(esPentagonal(resta)) if(esPentagonal(pent+(*it))) { cout<<resta<<endl; return 0; } it++; } pentagonals.push_back(pent); k++; } return 0; }
martes, 10 de abril de 2012
Project Euler 44
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario