<MEMORY>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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值