#include <iostream>
#include <algorithm>
using namespace std;
const int n= 7654322;
bool esPrimo[n+1];
void generarCriba()
{
for(int i = 3 ; i <= n; i+=2)
esPrimo[i] = true;
for(int i = 4 ; i <= n; i+=2)
esPrimo[i] = false;
esPrimo[2] = true;
for(int i = 3; i*i <= n; i+=2)
if(esPrimo[i])
for(int j = i+i ; j <= n; j+=i)
esPrimo[j] = false;
}
int main()
{
generarCriba();
string ini = "7654321";
string fin = "1234567";
int i = 0 ;
while(ini.compare(fin)!=0)
{
if(((ini[6]-'0')&1)!=0)
if(esPrimo[atoi(ini.data())])
{
cout << ini << endl;
break;
}
prev_permutation(ini.begin(),ini.end());
}
return 0;
}
martes, 10 de abril de 2012
Project Euler 41
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario