解答例 - 実習課題3 - 7.数値処理/数値の表現
(実習課題3)
引数で指定した桁数の整数で、とにかく大きい素数(素数である確率が高い数)を探し出すコンソールプログラムを作成しなさい。
解答例
package com.techscore.utility.chapter7.exercise3; import java.math.BigInteger; /** * PrimeNumberExample.java * TECHSCORE Javaユーティリティ7章 実習課題3 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ public class PrimeNumberExample { public static void main(String[] args) { if (args.length == 0) { System.out.println("引数で桁数を指定してください。"); System.exit(0); } StringBuffer buf = new StringBuffer(); for (int i = -1; i < new Integer(args[0]).intValue(); i++) { buf.append("9"); } // 1ずつ減算するために利用する。 BigInteger decreasing = new BigInteger("1"); // 指定された桁数の最大の数値を表す。 BigInteger biginteger = new BigInteger(buf.toString()); // 素数を探す while (!biginteger.isProbablePrime(1)) { // 1を引く biginteger = biginteger.subtract(decreasing); } System.out.println(biginteger); } }