问题标签 [factoring]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
43 浏览

javascript - 编程新手,不知道为什么这个因子计算器不起作用

我正在尝试制作一个因子计算器。您输入一个数字,它会找出该数字的因数。如果你将原始数字除以其因子,你会得到零,我试图在这里实现它,这样当它以“0”返回时,它会被推送到一个数组并打印该数组。

发生的情况是出现提示,我输入一个数字,但没有任何反应。有人可以帮忙吗?

0 投票
1 回答
82 浏览

algorithm - 在区间内最小化整数的除数

我最近偶然发现了一个算法问题,但我无法解决它。给定一个正整数 N < 10^13,并且您需要选择一个非负整数 M,这样总和:M N + N (N-1) / 2 具有介于 1 和N,包括在内。有人可以指出我解决这个问题的正确方向吗?感谢您的时间。

0 投票
4 回答
677 浏览

algorithm - 有没有一种算法可以找到只有小因素的最接近的数字?

我需要做一些实时 DFT,当样本数量可以分解为小因素时,我使用的算法是最有效的。

假设我有一个数字n和因素2, 3, 5。如何找到最接近的数(与 相比n),其素数分解不包含除 以外的数字2,3,5

n几乎总是低于50,000所以蛮力可能是一个好主意。

0 投票
5 回答
1431 浏览

python - 将整数分解为尽可能接近正方形的值

我有一个逐字节读取文件并将其转换为浮点数组的函数。它还返回所述数组中的元素数。现在我想将数组重塑为 2D 数组,其形状尽可能接近正方形。

例如,让我们看一下数字 800:

sqrt(800) = 28.427...

现在,我可以通过反复试验找出25*32我正在寻找的解决方案。如果乘以整数的结果太高,我通过减少sqrt(四舍五入到最接近的整数)来做到这一点,或者如果结果太低,则增加它们。

我知道对素数执行此操作的算法,但这对我来说不是必需的。我的问题是,即使我实施的蛮力方法有时也会卡住并且永远不会完成(这就是我任意限制迭代的原因):

在输出上方使用此脚本将陷入循环打印

但我想知道是否有更有效的解决方案?当然,我不可能是第一个想做这样的事情的人。

0 投票
1 回答
39 浏览

php - PHP数组值没有被改变

我试图制作一个程序来进行需要分解的合成除法,所以我编写了这个函数来分解一个有效的整数,但它永远不会改变 php 数组$factors的值。任何帮助将不胜感激

0 投票
2 回答
439 浏览

java - Java 中的素数分解 - 编程入门

原文:所以对于我的编程课介绍,我们必须找到用户输入的一系列数字(即 59-65)的质因数。这里很多解决方案的问题是它们使用了我们在课堂上没有讨论过的东西,比如数组、继续等。这是一个非常基本的类。至于要求,我们必须使用我们在第一个 for 循环中调用的 primeFact 方法/函数。她指示我们在方法中使用 while 和 for 循环来获取主要因素,但每次我认为我有一些东西时,它都不会正确。非常感谢任何帮助,我的代码如下。我真的只需要方法部分的帮助来寻找因素的算法。

编辑:这是我上交的最终解决方案。它可以工作,并且会给出给定数字范围内所有数字的所有素数。

0 投票
2 回答
1479 浏览

python - 64 位 Prime 的因子 (Prime-1)/2 的最快方法是什么?

我正在尝试收集一些关于素数的统计数据,其中包括数 (prime-1)/2 的因子分布。我知道有统一选择的数字的因子大小的通用公式,但我还没有看到任何关于小于素数的因子的分布。

我编写了一个程序来迭代从 2^63 之后的第一个素数开始的素数,然后使用直到 2^32 的所有素数的试除法来分解 (素数 - 1)/2。但是,这非常慢,因为要迭代很多素数(和大量内存)。我将每个素数存储为一个字节(通过存储从一个素数到下一个素数的增量)。我还对最大 2^64 的数字使用 Miller-Rabin 素数检验的确定性变体,因此我可以轻松检测剩余值(成功除法后)何时为素数。

我已经尝试过使用 pollard-rho 和椭圆曲线分解的变体,但是很难在试除法和切换到这些更复杂的方法之间找到正确的平衡。另外我不确定我是否正确地实现了它们,因为有时它们似乎需要很长时间才能找到一个因素,并且基于它们的渐近行为,我希望它们对于这么小的数字会很快。

我还没有找到任何关于分解许多数字的信息(而不是试图分解一个),但似乎应该有一些方法可以利用这一点来加速任务。

非常感谢任何关于此问题的建议、替代方法的指针或其他指导。


编辑:我存储素数的方式是存储下一个素数的 8 位偏移量,隐含的第一个素数是 3。因此,在我的算法中,我有一个单独的除以 2 的检查,然后我开始一个循环:

此外,我使用轮筛来计算试除的素数,并使用基于多个素数的余数的算法来获得给定起点之后的下一个素数。


我使用以下内容来测试给定的数字是否为素数(现在将代码移植到 c++):

0 投票
2 回答
354 浏览

python - Haskell 在天真的整数分解中比 Python 慢?

我正在上一门数学课程,我们必须做一些整数分解作为解决问题的中间步骤。我决定编写一个 Python 程序来为我做这件事(我们没有测试我们的分解能力,所以这完全是光明正大的)。程序如下:

我也一直在自学一些 Haskell,所以我决定尝试用 Haskell 重写程序。该程序如下:

(注意:这需要 64 位环境。在 32 位上,导入Data.IntInt64用作 上的类型注释read (argv !! 0)

在我写完这篇文章后,我决定比较两者的性能,认识到有更好的算法,但是这两个程序使用基本相同的算法。例如,我会执行以下操作:

然后,为 Python 程序计时:

当然,每次我运行其中一个程序时,时间都会略有不同,但它们总是在这个范围内,Python 程序比编译的 Haskell 程序快几倍。在我看来,Haskell 版本应该能够运行得更快,我希望你能给我一个如何改进它的想法,这样就可以了。

我已经看到了一些关于优化 Haskell 程序的技巧,如对这个问题的回答,但似乎无法让我的程序运行得更快。循环比递归快得多吗?Haskell 的 I/O 是不是特别慢?我在实际实现算法时犯了错误吗?理想情况下,我希望有一个仍然相对容易阅读的优化版 Haskell

0 投票
1 回答
7 浏览

memory - 试图在java中分解longs,内存不足?

运行此代码会导致我的 java 抱怨它内存不足?我没想到这是一个难以解决的问题,因为我的代码很有意义并且适用于较小的数字,但是这个似乎有问题。我的代码中是否有问题导致它崩溃,或者仅仅是我的代码(或一般的 java)没有内存效率?从这个较大的数字中减去数字可以完成的最大数字是“60085147.0”,它回答正确。我怎样才能让它解析更大的数字?

0 投票
1 回答
1744 浏览

math - 使用 Yafu 进行数因式分解

我正在尝试使用 Yafu 分解 RSA 密钥。令我惊讶的一件事是,即使 RSA 密钥应该只有 2 个因素,Yafu 也显示了超过 2 个因素。为什么会这样?

例如,当我考虑以下否时:

因素(1522605027922533360535618378132637429718068114961380688657908494580122963258952897654000350692006139)

我把这些作为因素: