一、超级数
【题目描述】:
众所周知,多次加法运算是乘法,多次乘法运算是乘方,那么多次乘方运算呢?
但是,这个数光是想想就远远超过了整个宇宙的大小,所以你只要求出它的值MOD P就可以了
【输入】:
第一行两个数N,P,如题目描述。
第二行N个数,表示a1~n。
【输出】:
仅一个数,表示它的值mod p的结果。
【样例输入】:
5 13
2 2 2 2 2
【样例输出】:
3
【说明】:
20%的数据N≤3,ai<1000;
40%的数据ai,p为质数或1;
100%的数据N≤20,ai,p≤Maxlongint。
算法简介:
如果X < PHI(C) 则 A^X MOD C = A^(X MOD PHI(C)) MOD C
否则 A^X MOD C = A^(X MOD PHI(C)+ PHI(C)) MOD C
PHI(X)函数表示的是X前有多少个数与他互质......
利用欧拉函数来做,不懂的可以去找去找我初中老师,证明可见:http://hi.baidu.com/aekdycoin/blog/item/b6f1762565bb403fc8955908.html
关于欧拉函数:http://wenku.baidu.com/view/2cdefb62caaedd3383c4d35c.html
这个是新的,话说大家可以把我的程序翻出来,把PHI中的TRUNC改成ROUND,就对了