#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <set>
#include <numeric>
using namespace std;
int factorial(int n)
{
int f = 1;
while(n>0)
f *= n--;
return f;
}
int main()
{
set<int> guardar ;
string cad = "123456789";
int tam = cad.length();
int n1,n2,n3,i,j;
int fac = factorial(tam);
for(int n = 0 ; n < fac; n++)
{
for(i = 1 ; i <=(tam-2) ; i++ )
{
n1 = atoi(cad.substr(0,i).data());
for(j = 1 ; j <= (tam-i-1); j++)
{
n2 = atoi(cad.substr(i,j).data());
n3 = atoi(cad.substr(i+j,tam-i+j).data());
if((n1*n2) == n3)
{
cout << n1 << " x "<<n2 <<" = "<<n3<<endl;
guardar.insert(n3);
}
}
}
next_permutation(cad.begin(),cad.end());
}
cout << "Resultado Final = "<<accumulate(guardar.begin(),guardar.end(),0)<<endl;
return 0;
}
martes, 10 de abril de 2012
Project Euler 32
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario