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