package luento06; /** * Ohjelmalla testataan onko_alkuluku-aliohjelmaa * @author Vesa Lappalainen * @version 1.0, 21.1.2010 */ public class Alkuluku { /** * Aliohjelmalla tutkitaan onko parametrina tuotu * luku alkuluku vai ei
* Algoritmi: Jaetaan tutkittavaa lukua jakajilla 2,3,5,7...luku/2. * Jos jokin jako menee tasan, niin ei alkuluku: * @param luku tutkittava luku * @return tieto siitä, onko luku alkuluku vai ei, true jos alkuluku * @example *
	   *    onkoAlkuluku(25) === false
	   *    onkoAlkuluku(2) === true
	   *    onkoAlkuluku(4) === false
	   *    onkoAlkuluku(123) === false
	   *    onkoAlkuluku(7) === true
	   * 
*/ public static boolean onkoAlkuluku(int luku) { /* Jaetaan tutkittavaa lukua jakajilla 2,3,5,7...luku/2. Jos jokin jako menee tasan, niin ei alkuluku: 0. Laita jakaja:=2, kasvatus:=1, Jos luku=2 lopeta, alkuluku 1. Jaa luku jakajalla. Meneekö jako tasan? - jos menee, on luku jaollinen jakajalla, lopeta 2. Kasvata jakajaa kasvatus arvolla (jakaja:=jakaja+kasvatus) 3. Kasvatus:=2; (koska parillisilla ei kannata enää jakaa) 4. Onko jakaja " + tulos + " vaikka olisi pitänyt olla " + pitaisiTulla); return 1; } /** * Testataan alkuluku-aliohjelman toimintaa * @param args ei käytössä */ public static void main(String[] args) { int v = 0; v += testaa(25,false); v += testaa(2,true); v += testaa(4,false); v += testaa(123,false); v += testaa(7,true); System.out.println("Virheitä oli: " + v); } }