public class Problem27 { static boolean[] criba; public static void main(String[] args) { generarCriba(10000000); int a=0,b=0,n=0,max = 0; long producto=0; try{ for(a = -1000 ; a<=1000;a++) for(b = -1000 ; b<=1000;b++){ int c = 0; for(n = 0 ; ;n++){ int f = fun(n,a,b); if(!criba[f]) c++; else break; } if(c>max){ max = c; producto = a*b; } } }catch (Exception e) { System.out.println("Fallo en :"); System.out.println(a+" "+b+" "+n); return; } System.out.println(producto); } public static int fun(int n, int a,int b){ return Math.abs(n*n+a*n+b); } public static void generarCriba(int n){ criba = new boolean[n+1]; criba[0] = criba[1] = true; for (int i = 2; i*i <= n; i++) if(!criba[i]) for (int j = i+i; j <= n; j+=i) criba[j] = true; } }
jueves, 9 de febrero de 2012
Project Euler 27
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario