从三角形序列中寻找除数

finding divisors from sequence of triangle

本文关键字:寻找 三角形      更新时间:2023-10-16

可能重复:
Project Euler问题12-C++

三角形数字的序列是通过将自然数相加而生成的。因此三角形数将是1+2+3+4+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的三角形。第一个除数超过一百的三角形?

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

问题是"第一个除数超过一百的三角形是什么?">简单地迭代三角形,找出每个三角形有多少因子。当你发现一个因子>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;

首先尝试自己动手。如果您无法得到答案,请理解此代码。试着去理解这个问题,然后试着自己去理解它。首先你必须检查,直到你的除数超过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;
}