Nyckelord: Metoder

Primtal
Skriv koden till ett program som beräknar alla primtal mellan 1 och 1000.
Ett primtal är ett naturligt tal, som är större än 1 och som inte har några andra positiva delare än 1 och talet självt.
-Wikipedia
Utgå från programmet:
public class MetoderUppgift3 {
public static void main(String[] args) {
}
}
Skapa sedan en metod isPrime() som givet ett heltal, avgör om det är ett primtal eller ej. Återanvänd sedan metoden för att gå igenom alla tal mellan 1 och 1000.
Ledtråd
För tal från 2 och uppåt: pröva positiva delare från 2 till och med talets kvadratrot. Om någon ger resten 0 är talet inte ett primtal. Tal mindre än 2 är aldrig primtal.
Svar
public class MetoderUppgift3 {
public static void main(String[] args) {
// Loopa igenom alla tal mellan 2 och 1000 (1 är inte ett primtal enligt definition!
for(int i = 2; i < 1000; i++){
if(isPrime(i)){
System.out.print(i + ", ");
}
}
}
// Loopar igenom alla värden som är mindre än number och kollar om det är jämnt delbart med number
public static boolean isPrime(int number) {
if (number < 2) return false;
for (int divisor = 2; divisor <= number / divisor; divisor++) {
if (number % divisor == 0) return false;
}
return true;
}
}
Förklaring:
Metoden returnerar false för tal mindre än 2. Den testar sedan delare från 2 medan divisor ≤ number / divisor, vilket motsvarar prövning upp till kvadratroten utan risk för overflow i divisor * divisor. Finns en jämn delare returneras false; annars true.