从三角形序列中找出除数

时间:2011-11-24 05:19:29

标签: c++

  

可能重复:
  Project Euler Problem 12 - C++

通过添加自然数来生成三角数的序列。因此,第7 三角形数字为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是第一个超过五个除数的三角形数。什么是价值 第一个三角形数字有超过一百个除数?

2 个答案:

答案 0 :(得分:0)

您只复制了问题说明!你的问题是什么问题?你必须陈述。

问题是“第一个三角形数是多少有一百个除数?”只需迭代三角形数字,找出每个有多少因子。当你找到一个> 100因素时,你已经完成了。

for each whole number 'n' from 1 -> +INF
    let tn = triangleNumber(n);
    let nf = numFactors(tn);
    if (nf > 100)
        print tn " has " nf " factors.\n";
        return;

答案 1 :(得分:0)

首先尝试自己动手。如果您无法得到答案,那么请理解此代码。尝试了解问题,然后尝试自己实现。首先你必须检查你的除数是否超过100,所以会有一个while循环。当你必须创建三角形序列时,即连续数字的总和(1 + 2 + 3 + 4 + 5 + 6 + 7) 。然后使用计数器并递增它以找出总和的除数。

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(){
int div=0,sum=0,num,i=1,chk=0,a;
cout<<"enter the number of divisors"<<endl;
cin>>a;
while(div<=a)
{div=0;                                 
sum=sum+i;
for(int j=1;j<=sum;j++)
{if(sum%j==0)
div++;
}
chk++;
i++;
}
cout<<"Value of first triangle number value is "<<sum<<endl;
cout<<"Value of triangle number is "<<chk<<endl;
system("PAUSE");
return 0;
}