Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何生成正好有七个除数的数?_C++_Algorithm_Prime Factoring - Fatal编程技术网

C++ 如何生成正好有七个除数的数?

C++ 如何生成正好有七个除数的数?,c++,algorithm,prime-factoring,C++,Algorithm,Prime Factoring,对于家庭作业,我需要逻辑来找到一系列从1到1000的数字,这些数字正好有七个除数 (理想情况下,代码可以很容易地修改以生成素数。)获取素数p。计算p^6。它唯一的除数是:1,p,p^2,p^3,…,p^6,一个带因式分解的数字 n = product(p_i ^ k_i) 将有 d = product(k_i + 1) 除数(参见)。这表明n可能只有一个素数因子,并且该素数因子必须提高到6的幂次方。以任意素数的六次方为例。逻辑将是该数将同时是完美平方和完美立方。 你必须知道一个素数形式为N=

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


(理想情况下,代码可以很容易地修改以生成素数。)

获取素数
p
。计算
p^6
。它唯一的除数是:
1
p
p^2
p^3
,…,
p^6
,一个带因式分解的数字

n = product(p_i ^ k_i)
将有

d = product(k_i + 1)

除数(参见)。这表明
n
可能只有一个素数因子,并且该素数因子必须提高到6的幂次方。以任意素数的六次方为例。

逻辑将是该数将同时是完美平方和完美立方。

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

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

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

编辑:使用此逻辑,快速生成数字将非常容易。您可以轻松生成完美的正方形和完美的立方体对于n=1到1000,您需要从
循环(对于循环)到
,对于m=1到n,在该循环内另一个循环
如果
n/m=integer(无余数),则在该循环内测试
如果是,则增加div计数器。 在第二个循环结束时,检查div计数器是否为7,如果是,则在屏幕上写入数字


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

>要考虑的一个起始点是要得到奇数个除数,它必须是一个完美的平方。@ Gabe:从我所知道的,除非被明确排除,否则它总是被计数的。+ 1,因为它也可以很容易地被修改来生成素数。numbers@liori:只是一个简单的暴力算法。改进它是可能的,但是为什么只有1000个数字呢?对于1000个数字,你应该注意到1000^(1/6)只比3多一点。这意味着只有小于1000且有7个除数的数字可以是2^6和3^6。你需要多少时间来输入你的算法?@liori:同意,但这是家庭作业,他需要的逻辑可以很容易地修改以生成素数。所以?int sevendivis(){返回2*2*2*2*2*2;}