解答例 - 実習課題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);
}
}

