3

对于家庭作业,我需要逻辑来找到从 1 到 1000 的一系列数字,它们正好有七个除数。

(理想情况下,可以轻松修改代码以生成素数。)

4

4 回答 4

9

取一个素数p。计算p^6。它唯一的除数是:1, p, p^2, p^3, ..., p^6

于 2011-03-13T15:42:17.917 回答
7

一个带有因式分解的数字

n = product(p_i ^ k_i)

会有

d = product(k_i + 1)

除数(参见Wikipedia 中的除数函数)。这说明n可能只有一个素数,而且这个素数必须提高到 6 次方。所以取任意素数的 6 次方。

于 2011-03-13T15:42:18.417 回答
2

逻辑是这个数字既是完美的正方形又是完美的立方体。

您必须知道,素数形式为 N=N1^a * N2^b; 其中 N1 和 N2 是素数,具有 a*b 因子或除数。

因此,对于 7 个因子,数字必须采用 N=a^6 的形式,其中 a 是质数。

例如 2^6 (64) , 3^6 (729)。

编辑:使用这种逻辑,快速生成数字会更容易。您可以轻松生成完美的正方形和完美的立方体 <1000。并检查两个列表中的常用数字。

于 2011-03-13T15:44:46.947 回答
1

你需要循环(for循环)从这个循环内部for n = 1 to 1000循环这个循环内部的另一个循环for m = 1 to n测试如果n/m = integer (no remainder)它增加了 div 计数器。在第二个循环结束时检查 div 计数器是否为 7,如果它在屏幕上写入数字。

编辑:对于素数,div 计数器必须为 2!

于 2011-03-13T17:20:01.017 回答