- 五边形数
五边形数可以由公式生成:Pn=n(3n−1)/2,前十个五边形数如下:
1, 5, 12, 22, 35, 51, 70, 92, 117, 145,…
可以看出 P4+P7=22+70=92=P8。然而,这两个数的差 70−22=48 并不是五边形数。
假设有一对五边形数 Pj 和 Pk,这两个数的和和差的绝对值都是五边形数,假设 D=|Pk−Pj|,
求 D 的最小值。
答案:5482660
代码如下:
public static int five(){
HashSet<Integer> div=new HashSet<>();
List<Integer> result=new ArrayList<>();
int t1,t2,t3;
for(int i=1;;i++){
t1=i*(3*i-1)/2;
div.add(t1);
result.add(t1);
// System.out.println(t1);
for(int j=1;j<i;j++){
t2=result.get(j-1);
if(div.contains(t1-t2)){
t3=1+24*(t1+t2);
int a=(int)Math.sqrt(t3);
if(a*a==t3&&a%6==5) {
return t1-t2;
}
}
}
}
}
public static void main(String[] args) {
System.out.println(five());
}