解答例 - j1.lesson07.Divisors

package j1.lesson07;

import java.io.*;

/**
 * 課題0702 - 解答例.
 @author s.arakawa
 @version $Id: Divisors_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class Divisors {

    /**
     * コンソールから1以上の整数nを入力させ、nの約数を小さい順にすべて表示するプログラム。
     @param args 無視される
     @throws IOException 入力時に例外が発生した場合
     */
    public static void main(String[] argsthrows IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        System.out.print("1以上の整数を入力:");
        int input = Integer.parseInt(reader.readLine());
        
        if (input <= 0) {
            System.out.println("1以上の整数を入力してください");
        }
        else {
            printDivisors(input);
        }
    }
    
    /**
     * 引数 <code>value</code> に対して、その約数を小さい順にすべて表示する。
     <code>value</code> が <code>0</code> 以下の場合は考慮しない。
     @param value 約数を表示する値
     */
    public static void printDivisors(int value) {
        System.out.print(1);
        for (int i = 2; i < value; i++) {
            if (value % i == 0) {
                System.out.print(" ");
                System.out.print(i);
            }
        }
        if (value != 1) {
            System.out.print(" ");
            System.out.println(value);
        }
    }
}