Project Euler NO45

三角數,五角數和六角數分別通過以下公式定義:

三角數   Tn=n(n+1)/2   1, 3, 6, 10, 15, ...
五角數   Pn=n(3n−1)/2   1, 5, 12, 22, 35, ...
六角數   Hn=n(2n−1)   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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章