#include <iostream>
#include <vector>
#include <set>
using namespace std;
bool Factorizar(int n,int nrofactores,vector<int>* factores)
{
int i;
int cant = 0;
for(i = 2; n>1 ; i++)
if((n%i) == 0 )
{
cant++;
if(cant>nrofactores)
return false;
int factor =i;
n/=i;
while((n%i) == 0)
n/=i ,factor*=i;
factores->push_back(factor);
}
return (cant==nrofactores);
}
int main()
{
int ini = 1;
vector<int> a,b,c,d;
bool swa,swb,swc,swd;
swa =swb=swc=swd = false;
while(true)
{
swa = swb;
swb = swc;
swc = swd;
a.swap(b);
b.swap(c);
c.swap(d);
d.clear();
swd = Factorizar(ini,4,&d);
//cout <<ini<<" = " << swa <<" "<< swb <<" "<< swc <<" "<< swd <<endl;
if(swa && swb && swc && swd)
{
set<int> miset(a.begin(),a.end());
miset.insert(b.begin(),b.end());
miset.insert(c.begin(),c.end());
miset.insert(d.begin(),d.end());
if(miset.size()==16)
{
cout << ini<<endl;
return 0;
}
}
ini++;
}
return 0;
}
miércoles, 11 de abril de 2012
Project Euler 47
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario