【HDU5728 PowMod】【欧拉函数+指数循环节】【欧拉函数积性性质+无穷幂迭代】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5728

题意:

φ 是欧拉函数, k= mi=1φ(in) %1000000007,求k的k次方的k次方的….(无限个k)的值。

分析:
比赛的时候在最小生成树上面卡住一直没有去看后面的题(说的好像看了就能做出来一样- -),隔了一个星期才想懂,

①欧拉函数性质:

a.若N的素因子p的指数为1,那么 φ(N)=φ(N/p)(p1)

b.若p的指数大于1,那么 φ(N)=φ(N/a)(φ(a)+1)

设k=s(n,m),将 φ(n) 分解质因数,p为n的任意质因子,因为n是无平方质因子数,故p的指数为1,

因此可以把 φ(in) 分成两部分,一部分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,一定有解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值