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

本文详细介绍了2017年安徽省ACM竞赛中一道关于奇数项欧拉函数(带模)的和的题目,解题思路涉及欧拉函数的性质和数论知识。通过化简,得出当n为奇数时,f(n)=ϕ(n)%(n+1),n为偶数时,f(n)=0。提供C++代码实现求解。

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

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

一、解题思路

首先大家在看这道题前得掌握欧拉定理,欧拉函数phi(n)表示n以内的数中与n互质的数的个数。欧拉函数的通式是ϕ(n)=n∗∑i=1π(n)(1−1pi)\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=∏pikin=\prod{p_i^{k_i}}n=piki,则有ϕ(n)=ϕ(∏piki)=∏ϕ(piki)\phi(n)=\phi(\prod{p_i^{k_i}})=\prod{\phi({p_i^{k_i}})}ϕ(n)=ϕ(piki)=ϕ(piki)
又有:
ϕ(ak)=ak−ak−1=ak−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=1nϕ(ni))%(n+1)f(n)=(\sum_{i=1}^{n}\phi(n^i))\%(n+1)f(n)=(i=1nϕ(ni))%(n+1)
f(n)=[ϕ(n)+ϕ(n2)+...+ϕ(nn)]%(n+1)f(n)=[\phi(n)+\phi(n^2)+...+\phi(n^n)]\%(n+1)f(n)=[ϕ(n)+ϕ(n2)+...+ϕ(nn)]%(n+1)
f(n)=[ϕ(∏piki)+ϕ((∏piki)2)+...+ϕ((∏piki)n)]%(n+1)f(n)=[\phi(\prod{p_i^{k_i}})+\phi(({\prod{p_i^{k_i}}})^2)+...+\phi(({\prod{p_i^{k_i}}})^n)]\%(n+1)f(n)=[ϕ(piki<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值