Pの競プロ記

競技プログラミングに関することを書きます。

AOJ 1503 Number

概要


問題文はこちら
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1503


解法


この問題は全く解法が思いつかなかったので、nanikakaさんやその他の記事を参考にしました。感謝です。

どうやら記事によると、
「(n + 1)! + 2, (n + 1)! + 3, (n + 1)! + 4, ..., (n + 1)! + (n + 1)はn個連続し、なおかつそれらの値は全て合成数である。」
らしいです。
自力では思いつかないですが、これを知ったらウオォォ!ってなりました。


ソースコード

import java.util.*;
import java.lang.*;
import java.math.*;

public class Main{
    
    void run(){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        BigInteger bi = BigInteger.ONE;
        
        for(int i = 2; i <= n + 1; i++){
            bi = bi.multiply(BigInteger.valueOf(i));
        }
        
        System.out.println(bi.add(BigInteger.valueOf(2)));
        
        for(int i = 2; i <= n + 1; i++){
            System.out.println(i);
        }
    }

    public static void main(String[] args){
        new Main().run();
    }
}