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