1   /**
2    *  Ohjelmalla testataan onko_alkuluku-aliohjelmaa
3    *  @author Vesa Lappalainen
4    *  @version 1.0, 17.01.2002
5    */
6   public class Alkuluku {
7   
8     /**
9      * Aliohjelmalla tutkitaan onko parametrina tuotu
10     * luku alkuluku vai ei<br>
11     * Algoritmi: Jaetaan tutkittavaa lukua jakajilla 2,3,5,7...luku/2.
12     * Jos jokin jako menee tasan, niin ei alkuluku:
13     * @param luku tutkittava luku
14     * @return tieto siitä, onko luku alkuluku vai ei
15     */
16    public static String onko_alkuluku(int luku)
17    {
18      int jakaja=2, kasvatus=1;
19      if ( luku == 2 ) return "alkuluku";
20  
21      do {
22        int jakojaannos = luku % jakaja;
23        if ( jakojaannos == 0 )
24          return "jaollinen";
25        jakaja += kasvatus;
26        kasvatus = 2;
27      } while ( jakaja < luku/2 );
28  
29      return "alkuluku";
30    }
31  
32    public static void main(String[] args) {
33      String tulos;
34      tulos = onko_alkuluku(25);
35      System.out.println(tulos);
36      tulos = onko_alkuluku(123);
37      System.out.println(tulos);
38      tulos = onko_alkuluku(7);
39      System.out.println(tulos);
40    }
41  }
42