从标题可以看出,我正在努力尝试对因数为 2 个素数的大整数进行因式分解。我想知道是否有一种方法可以为此在 for 循环中使用 for 循环。我知道这是一种可怕的方法,但我还是想这样做。(我打算使用 fermats 因式分解定理,但如果没有一些额外的方法/库,你就不能 sqrt BigIntegers,我不能这样做)所以试着看看你是否能帮助我做我正在做的事情。大致上是这样的:
BigInteger n = new BigInteger("270653957405596110781"); // this is what i need the factors of
BigInteger TWO = new BigInteger("2");
for( BigInteger i = new BigInteger("1"); i < n.divide(TWO); i.nextProbablePrime() ){
for( BigInteger k = new BigInteger("1"); k < n.divide(TWO); k.nextPossiblePrime){
if(i.Multiply(k) = n){
//i and k are the factors, and return them
}
}
}
显然那太糟糕了,我知道你不能通过说 i.nextPossiblePrime() 来增加下一个素数,你需要它说 i = i.nextpossible prime,我只是向你展示了我希望它如何工作; 但这就是我问的原因,因为我想知道这样的事情是否可能!
请让我知道这条路线是否可行,以及我如何修复这个糟糕的代码以像我想象的那样运行!
谢谢!