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