考虑到除数的数量,我们必须找到第一个三角形数。
三角形数与自然数之和相同。
我采用了从2开始取素数的方法并置换它们,以便生成的数字与三角形数相匹配。
例如,假设我们有5个除数。我从{2}开始(2,3,5)
作为N=p1^a1*p2*a2*p3^a3
。这里的(a1+1)(a2+1)....
2,3,5
除数的数量可以取幂和置换。然后n^2+n=2k
(k是从排列中获得的值)。我检查n值为Integer。
除此之外,我还没有找到任何有效的算法,是否有任何人有更优的算法?
答案 0 :(得分:1)
您可以使用反向方法。因为第n个三角形数可以被找到(n ^ 2 + n)/ 2,所以你可以迭代n并且对于每个数字计数它的除数。一些优化:
这种方法似乎更简单,更优化。此外,它保证您将找到第一个三角形数字。