对于家庭作业,我需要逻辑来找到从 1 到 1000 的一系列数字,它们正好有七个除数。
(理想情况下,可以轻松修改代码以生成素数。)
取一个素数p
。计算p^6
。它唯一的除数是:1
, p
, p^2
, p^3
, ..., p^6
。
一个带有因式分解的数字
n = product(p_i ^ k_i)
会有
d = product(k_i + 1)
除数(参见Wikipedia 中的除数函数)。这说明n
可能只有一个素数,而且这个素数必须提高到 6 次方。所以取任意素数的 6 次方。
逻辑是这个数字既是完美的正方形又是完美的立方体。
您必须知道,素数形式为 N=N1^a * N2^b; 其中 N1 和 N2 是素数,具有 a*b 因子或除数。
因此,对于 7 个因子,数字必须采用 N=a^6 的形式,其中 a 是质数。
例如 2^6 (64) , 3^6 (729)。
编辑:使用这种逻辑,快速生成数字会更容易。您可以轻松生成完美的正方形和完美的立方体 <1000。并检查两个列表中的常用数字。
你需要循环(for循环)从这个循环内部for n = 1 to 1000
循环这个循环内部的另一个循环for m = 1 to n
测试如果n/m = integer (no remainder)
它增加了 div 计数器。在第二个循环结束时检查 div 计数器是否为 7,如果它在屏幕上写入数字。
编辑:对于素数,div 计数器必须为 2!