Problem:
Problem D : Numbers

n が与えられるので、n 個の連続した正の整数を求めよ。
ただしすべての数が、１とその数自身以外の約数をもたなくてはならない。

Input

入力は以下のフォーマットで与えられる。

n

入力は以下の制約を満たす。

1 ≤ n ≤ 1,500

Output

最初の行に、あなたが選んだ連続したn 個の正の整数の中で一番小さいものを出力せよ。

2行目からn+1 行目に、それぞれの値に対する約数を出力せよ。

約数は1かその数自身でなければどの値を出力しても良い。

1行目に出力した数をxとして、i行目には x+i-2 の約数を出力せよ。

出力する値は5,000桁を超えてはいけない。

Sample Input 1

2

Sample Output 1

8
2
3

Sample Input 2

3

Sample Output 2

8
2
3
5

Hint

Sample Output 2では、8,9,10を3個の連続した整数として選んでいる。

2行目に、8の約数として2,3行目は9の約数として3,４行目には10の約数として5,を出力している。

Solution in JAVA (judge verdict: Accepted)

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

	static Scanner sc = new Scanner(System.in);

	public static void main(String[] args) {
		BigInteger mul = BigInteger.valueOf(2);
		for (int i = 3; i <= 1501; i += 2) {
			boolean ok = true;
			for (int j = 3; j * j <= i; j += 2) {
				if (i % j == 0) {
					ok = false;
					break;
				}
			}
			if (ok) {
				mul = mul.multiply(BigInteger.valueOf(i));
			}
		}
		int N = sc.nextInt();
		mul = mul.add(BigInteger.valueOf(2));
		System.out.println(mul);
		for (int i = 0; i < N; ++i) {
			int b = i + 2;
			for (int j = 2; j <= b; ++j) {
				if (b % j == 0) {
					System.out.println(j);
					break;
				}
			}
		}
	}

}