Factorial
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个正整数M,请你求出一个最小的正整数N满足:N!\equiv 0 (mod\quad M)

由于M实在是太大了,为了方便你读入,善良的出题人给你K个整数e_1,e_2,...,e_K,M=\prod \limits_{i=1}^K p_i^{e_i}。其中p_i是第i小的素数,保证答案不超过10^{18}

输入描述:

第一行一个整数T,(1\le T \le 10^4),表示数据组数。

对于每组数据,第一行一个整数K(1\le K \le 100),表示使用前K个素数即可表示M。其后一行K个整数e_i(0\le e_i \le 10^{18}),表示M分解后第i个素数的次数。

输出描述:

对于每组数据,输出一行一个整数,表示最小的满足N!\equiv 0 (mod\quad M)的正整数N。
示例1

输入

复制
1
5
1 1 1 1 1

输出

复制
11