"Alkuluku on lukua 1 suurempi luonnollinen luku, joka ei ole jaollinen muilla positiivisilla kokonaisluvuilla kuin yhdellä ja itsellään." - Wikipedia
Kirjoita ohjelma Alkuluku, joka kysyy käyttäjältä yhden kokonaisluvun, ja laskee onko käyttäjän syöttämä luku alkuluku.
Voit ratkaista tehtävän tekemällä toistorakenteen, jossa kokeilet jakaa käyttäjän antamaa lukua sitä pienemmillä kokonaisluvuilla. Aloita luvusta 2 ja jatka kokeilemista luku kerrallaan, kunnes saavutat sopivan ylärajan, jonka jälkeen jako ei voi enää mennä tasan. Jos jollain kierroksella jako menee tasan, ei käyttäjän antama luku ole alkuluku. Jos puolestaan toistorakenne päättyy ilman, että yksikään jako on mennyt tasan, annettu luku on alkuluku.
Esimerkkisuoritus kun annettu luku ei ole alkuluku:
Syötä jokin positiivinen kokonaisluku: 93
Luku 93 ei ole alkuluku.
Esimerkkisuoritus kun annettu luku on alkuluku:
Syötä jokin positiivinen kokonaisluku: 97
Luku 97 on alkuluku.
Example output:
Syötä jokin positiivinen kokonaisluku: 4
Luku 4 ei ole alkuluku.
Alkuluku.java
import java.util.Scanner;
import java.util.InputMismatchException;
public class Alkuluku {
public static void main(String[] args) {
//while(true) {
String tulos_lause = "on alkuluku";
Scanner syote = new Scanner(System.in);
System.out.print("Syötä jokin positiivinen kokonaisluku: ");
try {
int luku = syote.nextInt();
if (luku <= 1) {
throw new InputMismatchException();
}
for (int i = 2; i <= luku / 2; i++) {
if (luku % i == 0) {
tulos_lause = "ei ole alkuluku";
}
}
System.out.printf("Luku %s %s.\n", luku, tulos_lause);
} catch (InputMismatchException e) {
System.err.println("Syötteen tulee olla lukua 1 suurempi kokonaisluku");
}
//}
}
}