我想讓這段代碼更快。它返回一個長整數的所有因素(素數)。如果longNumber
是特定的,那麼顯然需要執行幾分鐘。改進快速分解代碼?
int div = 2;
String factors = "";
while (longNumer != 1)
{
if (longNumer % div == 0)
{
longNumer /= div;
factors += div + " ";
}
else { div++; }
}
//longNumber = 10, gives: 2 5.
//longNumber = 150, gives: 3 5 7.
//longNumber = 10523, gives: 17 619.
它需要太長的數字,如「7544222046562688368」,並且它不好,你會建議什麼?
對素數使用記憶,代碼將提升性能。 – 2015-03-30 20:18:54
如果你的算法真的把'3,5,7'作爲'150'的因素,我建議你在浪費時間讓它更快之前就做好了。在性能方面, – 2015-04-02 21:13:41