import java.util.BitSet; import java.util.Scanner; public class problem37{ static BitSet a ; public static void main(String[] args){ int c = 0; Scanner sc = new Scanner (System.in); int n = sc.nextInt(), i = 2, j = 0; a = new BitSet(n); for(i = 2 ; (i*i) <= n ; i = i+1) if(!a.get(i)) for(j=i+i;j<=n;j=j+i) a.set(j); for(i=11;i<=n;i++) if(!a.get(i)){ String aux = Integer.toString(i); if(check1(i)&&check2(i)&& aux.charAt(0)!='1'&&aux.charAt(aux.length()-1)!='1') c=c+i; } System.out.println(c); } public static boolean check1(int n){ String num = Integer.toString(n); while(true) { num = num.replaceFirst("[0-9]",""); if(num.equals("")) break; if(!a.get(Integer.parseInt(num))) continue; else return false; } return true; } public static boolean check2(int n) { String num = Integer.toString(n); while(true) { int leng =num.length(); leng--; num = num.substring(0,leng ); if(num.equals("")) break; if(!a.get(Integer.parseInt(num))) continue; else return false; } return true; } }
jueves, 9 de febrero de 2012
Project Euler 37
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario