7299 - 封印(seal)
时间限制 : 1 秒
内存限制 : 128 MB
在远古的神话时代,众神曾创造了一件拥有无限力量的神器——“万物之核”。为了防止凡人滥用这股力量,众神将它的力量分解为n个圣数,刻在一块名为“命运之碑”的石板上,它们分别是$a_1,a_2,...,an。 传说中,若要重新唤醒这件神器,必须将这n个圣数相乘,得到“本原之数”: N=\prod{1\le i\le n} a_i=a_1\times a_2\times...\times an 而神器的封印能否解开,取决于一个更深的奥秘——本原之数的所有正因子之和。只有当这个和等于某个天启之数时,封印才会显现裂痕。 这个数字可能很大,人类很难计算,众神决定给人类一个破解的机会:结果必须对{10}^9+7取模。 如今,你在古神殿的废墟中发现了这块命运之碑。作为一位精通数论的探险者,你必须迅速计算: \sigma(N)=(\sum{d\mid N}{d)\ mod\ {(10}^9+7)} 即N的所有正因子之和,再对{10}^9+7$取模。
输入
从文件seal.in中读入数据。 输入的第一行为数字n。 输入的第二行包含n个数字,分别为a_1,a_2,...a_n。
输出
输出到文件seal.out中。 输出仅一个数字,即N的所有正因子之和,再对{10}^9+7取模的结果。
样例
输入
3 2 5 10
输出
217
提示
N=2\times5\times10=100。100的因子有:1、2、4、5、10、20、25、50、100。总和为1+2+4+5+10+20+25+50+100=217。
来源
青少年编程挑战赛