2017年安徽省ACM竞赛J题《看似简单的题目》C++题解----奇数项欧拉函数(带模)的和

2017年安徽省ACM竞赛J题《看似简单的题目》C++题解----奇数项欧拉函数(带模)的和

今晚花了一晚上终于A掉了这道题?,哈哈???,好快乐呀,做难题果然能让人很快乐???当年省赛时没做出来,今晚终于搞定了,必须得总结下~~~ AC代码在文末给出~?

一、解题思路

首先大家在看这道题前得掌握欧拉定理,欧拉函数phi(n)表示n以内的数中与n互质的数的个数。欧拉函数的通式是 ϕ ( n ) = n ∗ ∑ i = 1 π ( n ) ( 1 − 1 p i ) \phi(n)=n*\sum_{i=1}^{\pi(n)}(1-\frac{1}{p_i}) ϕ(n)=ni=1π(n)(1pi1),由于 ϕ ( n ) \phi(n) ϕ(n)是积性函数,当 x , y 互 质 时 , x , y 满 足 ϕ ( x ∗ y ) = ϕ ( x ) ∗ ϕ ( y ) x,y互质时,x,y满足\phi(x*y)=\phi(x)*\phi(y) x,yx,yϕ(xy)=ϕ(x)ϕ(y)
又因为n可以通过质因子分解写成 n = ∏ p i k i n=\prod{p_i^{k_i}} n=piki,则有 ϕ ( n ) = ϕ ( ∏ p i k i ) = ∏ ϕ ( p i k i ) \phi(n)=\phi(\prod{p_i^{k_i}})=\prod{\phi({p_i^{k_i}})} ϕ(n)=ϕ(piki)=ϕ(piki)
又有:
ϕ ( a k ) = a k − a k − 1 = a k − 1 ∗ ( a − 1 ) \phi(a^k)=a^k-a^{k-1}=a^{k-1}*(a-1) ϕ(ak)=akak1=ak1(a1)
下面就可以正式推导题目中的 f ( n ) f(n) f(n)
题目中的 f ( n ) f(n) f(n)定义:
f ( n ) = ( ∑ i = 1 n ϕ ( n i ) ) % ( n + 1 ) f(n)=(\sum_{i=1}^{n}\phi(n^i))\%(n+1) f(n)=(i=1nϕ(ni))%(n+1)
f ( n ) = [ ϕ ( n ) + ϕ ( n 2 ) + . . . + ϕ ( n n ) ] % ( n + 1 ) f(n)=[\phi(n)+\phi(n^2)+...+\phi(n^n)]\%(n+1) f(n)=[ϕ(n)+ϕ(n2)+...+ϕ(nn)]%(n+1)
f ( n ) = [ ϕ ( ∏ p i k i ) + ϕ ( ( ∏ p i k i ) 2 ) + . . . + ϕ ( ( ∏ p i k i ) n ) ]

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值