我正在寻找一种
易于理解的快速分解Java实现,最好以最短的代码量实现。
[我看着many algorithms(Pollard的Rho,GNFS /筛子和ECM仅举几例),我可以测试的fastest one最多只需要一秒钟(但NOT easy to understand or integrate)。我花了三天的时间。我发现的代码非常慢,或者非常长/非常复杂。
有人可以将我指向Java实现(或发布一些代码)。理想情况下,我只需要一个简单的函数或小类,即可让我分解30位数字。
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与数字相同为止。
如果有帮助,请给我投票。我是新来的,正在尝试拥有一些基本声誉。谢谢!