2015年4月22日水曜日

javaを学ぼう 5 素数判定

今回は素数判定プログラムです。intタイプに格納可能な桁数の数字が素数かどうか判定します。詳しい説明はまたあとで・・・。

クラス名がHelloworldなのは今まで使ってきたサイトにコピーアンドペーストしたときにそのまま動くようにです。

現在は768305311がintタイプに格納されており、このままプログラムを動かすと768305311が素数かどうか判定します。このプログラムによれば素数のようです。この部分を自由に書き換えることによって色んな数字が素数かどうか判定することができます。


public class Helloworld {
 final static int n = 768305311;

 static boolean isPrimeNum(int x) {
  if (x == 2)
   return true;
  if (x < 2 || x % 2 == 0)
   return false;
  for (int n = 3; n <= Math.sqrt((double) x); n += 2)
   if (x % n == 0) return false;
  return true;
 }

 public static void main(String[] args) {
  System.out.println("Prime numbers."); {
   if (isPrimeNum(n)) {
    System.out.print(n + " is a prime number.");

    System.out.println();
   } else {
    System.out.println(n + " is not a prime number.");
   }
  }
 }
}