import java.util.Arrays;
import java.util.BitSet;
import java.util.Scanner;
public class problem41
{
public static void main(String[] args)
{
long tiempo= System.currentTimeMillis();
BitSet a = new BitSet(987654321);
int i =2,j=0;
for(i=2;(i*i)<=10000000;i=i+1)
{
if(!a.get(i))
{
for(j=i+i;j<=10000000;j=j+i)
{
a.set(j);
}
}
}
for (int j2 =7654321; j2 >=1 ;j2--)
{
String x=Integer.toString(j2);
char v[]= x.toCharArray();
Arrays.sort(v);
if(!a.get(j2))
{
if(ispandigital(x, v[v.length-1]-48))
{System.out.println(x);
break;
}
}
}
System.out.println(System.currentTimeMillis()-tiempo);
}
public static boolean ispandigital(String x,int n)
{
boolean v[]= new boolean[n+1];
for (int i = 0; i < x.length(); i++)
{
v[x.charAt(i)-48]=true;
}
for (int i = 1; i < n+1; i++)
{
if(!v[i])
return false;
}
return true;
}
}
domingo, 19 de febrero de 2012
project euler # 41
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario