寻找一种简单快速的因数分解算法[关闭]

问题描述 投票:0回答:1
我有一些大数(30位数字)需要分解。

我正在寻找一种

易于理解的快速分解Java实现,最好以最短的代码量实现。

[我看着many algorithms(Pollard的Rho,GNFS /筛子和ECM仅举几例),我可以测试的fastest one最多只需要一秒钟(但NOT easy to understand or integrate)。

我花了三天的时间。我发现的代码非常慢,或者非常长/非常复杂。

有人可以将我指向Java实现(或发布一些代码)。理想情况下,我只需要一个简单的函数或小类,即可让我分解30位数字。

java primes prime-factoring sieve-of-eratosthenes factoring
1个回答
0
投票
这是我所知道的最好的,并且非常快

public class PrimeFactors { public static void main(String args[]){ //number to be factored long number = 374943837383L; //algorithm for(int i = 2; i < number; i++) { while(number % i == 0) { System.out.println(i + " "); number = number / i; } } if(number > 2) { System.out.println(number); } } }

我认为ti确实很容易理解,因为代码非常短,所以它也非常快。 

如何运作:当数字可以除以i(该数字不断增加)时,它将打印该数字并将其除以i。直到i与数字相同为止。

如果有帮助,请给我投票。我是新来的,正在尝试拥有一些基本声誉。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.