Prím számok kiíratása Java-ban, miért így működik?
boolean isPrime(int n) {
for(int i=2;i<n;i++) {
if(n%i==0)
return false;
}
return true;
Generálok véletlenszerűen 10-20 között egy n számot, ez lesz 16
Aztán n-ig kiíratom az összes prím számot.
Megadom a fentiek szerint, h for(int i=2;i<n;i++)
hamis, ha if(n%i==0)
Ennek a működését nem értem.
Tehát veszi a számokat sorba 16-ig elosztja i-vel, ha van maradéka akkor igaz és kiírja, ha nincs akkor hamis és nem írja ki. De ez így nem helyes.
Mert van mondjuk a 8 elosztja 2, nincs maradék, nem írja ki, ez jó.
Aztán növeli 1-el, jön a 9, osztja 2-vel, VAN MARADÉK, mégse írja ki.
Aztán mondjuk a 15, elosztja kettővel, VAN MARADÉK mégse írja ki.
Le tudná írni valaki, hogy működik ez, egyszerűen, érhetően?
Köszi :)
Azt csinálja a függvény, hogy meghívod egy n számmal.
Ő ciklusban megvizsgál minden számot 2 és n között.
i megy 2-től n-1-ig
Ha talál olyan i-t, ami osztója n-nek, akkor vsszatér azzal, hogy false.
Ha nem talált ilyen i-t, akkor n prím, és visszatér azzal, hogy true.
Pl.:
8
Megnézi a 2-őt 8%2==0, ezért 8 nem prím.
9
Megnézi a 2-őt 9%2==1 ezért megy tovább a ciklus
Jön az i=3 9%3==0, ezért 9 nem prím.
7
Megnézi 2-őt nem osztó
Megnézi a 3-at nem osztó
...
Megnézi a 6-ot nem osztó
Ciklus véget ért.
Visszatér azzal, hogy true.
Nincs semmilyen kiírás.
A return-nel visszatér a vezérlés a hívó helyre a return után szereplő értékkel.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!