Tässä artikkelissa opit tarkistamaan, onko luku alkuluku vai ei. Tämä tehdään Java for for loop -silmukalla.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java taas ja tee … samalla kun silmukka
- Java silmukalle
Pääluku on luku, joka voidaan jakaa vain kahdella luvulla: 1 ja itsellään. Joten jos jokin luku on jaettavissa millä tahansa muulla luvulla, se ei ole alkuluku.
Esimerkki 1: Ohjelma tarkistamaan alkuluku for for -silmukalla
public class Main ( public static void main(String() args) ( int num = 29; boolean flag = false; for (int i = 2; i <= num / 2; ++i) ( // condition for nonprime number if (num % i == 0) ( flag = true; break; ) ) if (!flag) System.out.println(num + " is a prime number."); else System.out.println(num + " is not a prime number."); ) )
Tuotos
29 on alkuluku.
Yllä olevassa ohjelmassa silmukkaa varten määritetään onko annettu numero numero alkuluku vai ei.
Huomaa tässä, että olemme silmukan 2: sta num / 2: een. Se johtuu siitä, että luku ei ole jaettavissa yli puoleen.
for
Silmukan sisällä tarkistamme, onko numero jaettavissa jollakin annetulla alueella olevalla luvulla (2… num/2)
.
- Jos numero on jaollinen, lippu asetetaan arvoon
true
ja me irrotamme silmukasta. Tämä määrittää, että numero ei ole alkuluku. - Jos num ei ole jaettavissa millään numerolla, lippu on väärä ja num on alkuluku.
Esimerkki 2: Ohjelma tarkistamaan alkuluku käyttäen while-silmukkaa
public class Main ( public static void main(String() args) ( int num = 33, i = 2; boolean flag = false; while (i <= num / 2) ( // condition for nonprime number if (num % i == 0) ( flag = true; break; ) ++i; ) if (!flag) System.out.println(num + " is a prime number."); else System.out.println(num + " is not a prime number."); ) )
Tuotos
33 ei ole alkuluku.
Yllä olevassa ohjelmassa silmukkaa käytetään silmukan sijaan. Silmukka jatkuu i <= num/2
. Jokaisella iteraatiolla tarkistetaan, onko numero jaollinen i: llä, ja i: n arvoa lisätään 1: llä.
Käy tällä sivulla oppiaksesi, kuinka voit näyttää kaikki alkuluvut kahden aikavälin välillä.