#Z01853. 来自ycj学长的关怀
来自ycj学长的关怀
题目描述
龟速乘可以有效地保证你的long乘long不会boom的一声炸掉,然后送给你一个神奇的数字。(2个数都小于mod,但是相乘爆long了,此时再mod也无济于事了)
static long mul(long a,long b,long mod)
{ long ans=0; while(b>0) { if(b%2==1)ans=(ans+a)%mod; a=(a*2)%mod; b=b/2; } return ans; }
看懂了上面龟速乘的代码,就来练一练手吧!
ycj学长说现在有一个数列,要算出第i个数的i次幂并且把每个数计算的值相乘在一起,最后让答案对 梅森素数m=(2^61)-1=2305843009213693951 取模。
输入格式
一组输入包含多组样例。
每组样例的第一行有一个整数n。(0
接下来一行有n个数,每个数的大小不超过m=2305843009213693951。
输出格式
输出取模后的积。
2
1 2
3
1 2 3
4
108
豫公网安备41072702000346号