Gyakorlati alapok

Nem osztozkodó és osztópárok szintén bekérődzéssel

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

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.

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 


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