三角數,五角數和六角數分別通過以下公式定義:
三角數 | Tn=n(n+1)/2 | 1, 3, 6, 10, 15, ... | ||
五角數 | Pn=n(3n1)/2 | 1, 5, 12, 22, 35, ... | ||
六角數 | Hn=n(2n1) | 1, 6, 15, 28, 45, ... |
可以證實 T285 = P165 = H143 = 40755.
找出這之後的下一個既是五角數又是六角數的三角數。
public class Problem45
{
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()
{
for (int i = 144; ; i++)
{
long h = i * (2 * i - 1);
double tp = (Math.sqrt(24 * h + 1) + 1) / 6;
if ((int)tp != tp)
{
continue;
}
long tt =(int) Math.sqrt(h * 2);
if (tt * (tt + 1) /2 != h)
{
continue;
}
System.out.println(h);
break;
}
}
}
answer: 1533776805
time: 3