Gyakorlati alapok
Nem osztozkodó és osztópárok szintén bekérődzéssel
Az osztópár fogalma nagyon egyszerű: ha igaz az összefüggés, miszerint...
a * b = c
...akkor a és b számok c számnak osztópárját alkotják. Még egyszerűbben: osztópár az a két szám, amelynek szorzata az adott szám.
Implementálása eddig tanultak alapján már viszonylag egyszerű. Mivel osztópárt, azaz 2 db int típusú számot keresünk, a kezdeti bemeneti adat c szám, amelynek típusa szintén integer (int). Ezt szimpla String bekéréssel (String elem = scanner.nextLine();) és villámgyors int típussá alakítással oldjuk meg (Integer.parseInt(elem);). A rendszerbe nem kerülhet (illetve nincs értelme kerülnie) 1-nél kisebb számnak, ezt egy elöltesztelő ciklus ellenőrzi (while (elemszam < 1)).
Az osztópárok kiszámításához 2 db for ciklus szükséges egyetlen, voltaképpen a fenti matematikai feltétel megadásával (if (i * j == elemszam)). A feltételnek megfelelő számpárokat kell kiírnunk, a többi lényegtelen.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int elemszam = 0;
while (elemszam < 1) {
Scanner scanner = new Scanner (System.in);
System.out.println ("Kérem, hogy adjon meg egy pozitív számot!");
String elem = scanner.nextLine();
elemszam = Integer.parseInt(elem);
}
for (int i = 1; i <= elemszam; i++){
for (int j = 1; j <= elemszam; j++)
if (i * j == elemszam){
System.out.println (i + " * " + j + " = " + elemszam);
}
}
}
}
Végeredmény (például):
Kérem, hogy adjon meg egy pozitív számot!
0
Kérem, hogy adjon meg egy pozitív számot!
40
1 * 40 = 40
2 * 20 = 40
4 * 10 = 40
5 * 8 = 40
8 * 5 = 40
10 * 4 = 40
20 * 2 = 40
40 * 1 = 40