The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
Let us list the factors of the first seven triangle numbers:
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
We can see that 28 is the first triangle number to have over five divisors.
What is the value of the first triangle number to have over five hundred divisors?
翻译:
三角数序列可通过连续自然数求和得到.第7个三角数是1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.前10个三角数是:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
列出前7个三角数的因子:
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个因子的三角数.
c++代码,
#include <stdio.h>
#include <stdlib.h>
int main(int args, char* argv[])
{
long result=1,trinum=0,curnum=1;
int n=0,i=0,big=0;
int stop = 500;
while(n<stop)
{
n = 0;
trinum = 0;
for(i=1;i<=curnum;i++)
trinum += i;
for(i=1;i<=trinum;i++)
{
if(trinum%i==0)
n += 1;
}
if(n>=stop)
{
result = trinum;
break;
}
if(n>big)
{
big = n;
//printf("Current number: %i [%d]\n",trinum,big);
}
curnum++;
}
printf("%i\n",result);
return 0;
}结果:
76576500
No comments :
Post a Comment