题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5728
题意:
φ 是欧拉函数, k= ∑mi=1φ(i∗n) %1000000007,求k的k次方的k次方的….(无限个k)的值。
分析:
比赛的时候在最小生成树上面卡住一直没有去看后面的题(说的好像看了就能做出来一样- -),隔了一个星期才想懂,
①欧拉函数性质:
a.若N的素因子p的指数为1,那么 φ(N)=φ(N/p)∗(p−1) ;
b.若p的指数大于1,那么 φ(N)=φ(N/a)∗(φ(a)+1)
设k=s(n,m),将 φ(n) 分解质因数,p为n的任意质因子,因为n是无平方质因子数,故p的指数为1,
因此可以把 φ(i∗n) 分成两部分,一部分i含有质因子p,依性质b化简,另一部分无质因子p,依性质a
化简,得到s(n,m)= φ(p) *s(n/p,m)+s(n,m/p);递归求解k。
②求 kbmodc 可用指数循环节化简,
kbmodc = kbmodφ(c)+φ(c)modc ( b≥φ(c) )
大于1的数的欧拉值都是小于本身的,向上递归取模时取欧拉函数值,所以模的值越来越小,最后等于1,所以模会不断变小至1,一定有解。