#495. 次元战争

次元战争

题目描述

在古老的大陆上有 n 个国家,作为异世界的你想要征服这片大陆

你排出无穷个士兵,每个士兵的路线不同。

第一位士兵的路线是:1->2->4->8->16->....

第二位士兵的路线是:1->3->9->27->81->....

第三位士兵的路线是:1->5->25->125....

第四位士兵的路线是:1->7->49........

。。。。。。

用数学的语言来解释,第 ii 位士兵的路线是首项为11,公比为 q(i)q(i) 的等比数列,其中 q(i)q(i) 代表第 ii 个素数。

当士兵每经过一座城市,你的士兵就会把这个城市攻占。

你想知道,所有没有被攻占的城市编号的 lcm(最小公倍数 ,Least common multiple)是多少?

由于这个 lcm 可能非常大,请输出它对 109+710^9+7 取模的值。

输入描述:

一个正整数nn (1n1.8×108)(1≤n≤1.8×10^8)

输出描述:

如果所有数都被攻占了,请输出一个字符串"empty"

否则输出所有没有被攻占的城市编号的lcm,对 109+710^9+7 取模

输入输出样例

7
6

说明

第一位士兵攻占:1,2,41,2,4

第二位士兵攻占:1,31,3

第三位士兵攻占:1,51,5

第四位士兵攻占:1,71,7

所以剩下的城市只有一个 6 ,所有数的 lcm 为 6

对于20%的数据 1n<=101≤ n <= 10

对于50%的数据 1n<=100001≤ n <= 10000

对于100%的数据 1n1.8×1081≤n≤1.8×10^8