您的位置:首页 > 其它

<MEMORY>Project Euler NO.12

2014-01-21 15:11 393 查看
//三角形数序列是由对自然数的连加构造而成的。所以第七个三角形数是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. 那么三角形数序列中的前十个是:
//1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
//下面我们列出前七个三角形数的约数:
//1: 1
//3: 1,3
//6: 1,2,3,6
//10: 1,2,5,10
//15: 1,3,5,15
//21: 1,3,7,21
//28: 1,2,4,7,14,28
//可以看出28是第一个拥有超过5个约数的三角形数。
//那么第一个拥有超过500个约数的三角形数是多少?
public class Problem12
{
public static void main(String[] args)
{
long start = System.currentTimeMillis();
System.out.print("answer:  ");
System.out.println(TheNU());
long end = System.currentTimeMillis();
System.out.print("time:  ");
System.out.println(end - start);
}

static int TheNU()
{
int s = 0;

for (int i = 1;;i++)
{
s+=i;
if (isanswer(s))
{
return s;
}
}
}

static boolean isanswer(int s)
{
int n = 0;
for (int i = 1; i <= Math.sqrt(s); i++)
{
if (s % i == 0)
{
n++;
}
}
if ( n * 2 > 500)
{
return true;
}

return false;
}
}
answer:  76576500
time:  690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PE