[yukicoder] No. 1237 EXP Multiple!

問題

方針

問題文を注意して読みます。\( a^{a!} \) は

\[ a^{a!} = a^{a \cdot (a-1) \cdot \cdots \cdot 2\cdot 1}\]

なので発散するスピードが速く、\( 4^{4!} > 10^9 + 7 \) となります。 したがって、\( A_i \geq 4 \) を満たすとき、答えは \( 10^9 + 7 \) となります。また、\( 2^{2!} = 1 \)、\( 3^{3!} = 729 \) をあらかじめ計算しておき、\( \prod_{k = 1}^{N}A_k^{A_k}\) の値が \( 10^{9} + 7 \) を超えた時、答えは \( 10^9 + 7 \) となり、そうでなければ、\( (10^9 + 7 \bmod \prod_{k = 1}^{N}A_k^{A_k})\) を出力します。

コード