找出全部11個這樣從左向右和從右向左都可以裁剪的質數。
注意:2,3,5和7不被認爲是可裁剪的質數。
public class Problem37
{
public static void main(String[] args)
{
long start = System.currentTimeMillis();
System.out.print("answer: ");
howmany();
long end = System.currentTimeMillis();
System.out.print("time: ");
System.out.println(end - start);
}
static void howmany()
{
int sum = 0;
int nu = 0;
l1 : for (int i = 11; nu < 11 ; i++)
{
if (!check(i))
{
continue;
}
int t = i;
while (t != 0)
{
t /= 10;
if (!check(t))
{
continue l1;
}
}
String str = (i + "");
int len = str.length();
for (int j = 0; j < len - 1; j++)
{
str = str.substring(1);
if (!check(Integer.parseInt(str)))
{
continue l1;
}
}
nu ++;
sum += i;
}
System.out.println(sum);
}
static boolean check(int n)
{
if (n == 1)
{
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
}
answer: 748317
time: 547