1487, 4817, 8147这个序列,每个比前一个递增3330,而且这个序列有两个特点:1. 序列中的每个数都是质数。2. 每个四位数都是其他数字的一种排列。
1,2,3位组成的三个质数的序列中没有具有以上性质的。但是还有另外一个四位的递增序列满足这个性质。
如果将这另外一个序列的三个数连接起来,组成的12位数字是多少?
import java.util.Arrays;
public class Problem49
{
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()
{
String array[] = new String[10000];
for (int i = 1000; i <= 9999; i++)
{
array[i] = "a";
if (iszhishu(i))
{
char ch[] = (i + "").toCharArray();
Arrays.sort(ch);
String s = "";
for (int j = 0; j < 4; j++)
{
s += ch[j] + "";
}
array[i] = s;
}
}
for (int i = 1000; i <= 9999; i++)
{
if (array[i].equals("a"))
{
continue;
}
if(search(array, i))
{
if (i != 1487)
{
System.out.println(answer);
}
}
}
}
static String answer = "";
static boolean search(String array[],int nu)
{
answer = "";
String s = array[nu];
for (int i = 1; nu + 2 * i < 10000; i++)
{
if (s.equals(array[nu + i]) && s.equals(array[nu + 2 * i]) )
{
answer += nu + "" + (nu +i) + (nu + 2 * i);
return true;
}
}
return false;
}
static boolean iszhishu(int n)
{
for (int i = 2; i <= Math.sqrt(n); i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
}
answer: 296962999629
time: 51