Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.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_Numbers_Number Theory - Fatal编程技术网

C++ 数论算法。段上的大多数除数

C++ 数论算法。段上的大多数除数,c++,algorithm,numbers,number-theory,C++,Algorithm,Numbers,Number Theory,我正在寻找一个有效的算法来解决以下问题。设d(n)表示n的正因子数,其中n为正整数。我们得到了一些1res)res=r; 如果(i==p)返回; int d; 无符号长x=val; 对于(d=1;d它迭代所有数字,如下所示: num = P1^D1 * P2^D2 * P3^D3 * ... * Ps^Ds constraints: Pi <= 71 1 <= Di <= 100 sequence (Pi) is a sorted list of first s p

我正在寻找一个有效的算法来解决以下问题。设
d(n)
表示
n
的正因子数,其中
n
为正整数。我们得到了一些
1res)res=r;
如果(i==p)返回;
int d;
无符号长x=val;

对于(d=1;d它迭代所有数字,如下所示:

num = P1^D1 * P2^D2 * P3^D3 * ... * Ps^Ds
constraints:
  Pi <= 71
  1 <= Di <= 100
  sequence (Pi) is a sorted list of first s primes
  sequence (Di) is nonincreasing
  num <= n
num=P1^D1*P2^D2*P3^D3*..*Ps^Ds
限制条件:
π矛盾。这意味着在寻求最优(最小)数的因式分解中,所有的素数必须恰好是前s个素数。所使用的素数集中不能有洞。

顺便说一句,Di作为@stgatilov答案的补充,我将证明选择将素数限制为小于或等于71的素数

我使用了一个稍微修改过的代码版本来记录最大数的除数。对于10000000000000000或9999999999999999,我得到:

897612484786617600=28*34*52*72*11*13*17*19*23*29*31*37

总除数为103680


这意味着对于所有的18位十进制数字,没有一个大于37的素数是找到最大除数的整数。< /P>请修正代码环境:在代码< MUL>/代码>函数之前加一行空格。你考虑不同的除数还是不?除数需要简单吗?<代码> d(12)例如,我考虑所有除数,所以D(1)=1,D(素数)=2,D(12)=6。