Znam da tema više nije aktivna, ali kad već pričate o optimizaciji običnog algoritma za proste brojeve (ne Eratostenovo sito), ovo bi bio neki optimum. Možda će nekom zatrebati.
public static boolean isPrime(int n) {
boolean prime = true;
for (int i = 3; i <= Math.sqrt(n); i += 2)
if (n % i == 0) {
prime = false;
break;
}
if (( n%2 !=0 && prime && n > 2) || n == 2) {
return true;
} else {
return false;
}
}
Dakle, nema potrebe pretraživati sve brojeve. Ovde eliminišemo sve parne brojeve (oni su sigurno prosti), i sve parove projeva ovim korenom. Ovo je Java, ali verujem da razumete poentu, ako nekome bude trebalo mogu da prekucam u neki drugi jezik.
@Milica Jankovic
Dokle si stigla sa zadatkom? Šta ti konkretno pravi problem?
|