51nod 1239 欧拉函数之和
来源:互联网 发布:蓝月传奇光翼升阶数据 编辑:程序博客网 时间:2024/06/05 07:40
1239 欧拉函数之和
基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题
对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为Euler’s totient function、φ函数、欧拉商数等。例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质。
S(n) = Phi(1) + Phi(2) + …… Phi(n),给出n,求S(n),例如:n = 5,S(n) = 1 + 1 + 2 + 2 + 4 = 10,定义Phi(1) = 1。由于结果很大,输出Mod 1000000007的结果。
Input
输入一个数N。(2 <= N <= 10^10)
Output
输出S(n) Mod 1000000007的结果。
Input示例
5
Output示例
10
dalao:http://blog.csdn.net/alan_cty/article/details/51837101
这题和上一题很像 只是欧拉函数和莫比乌斯函数不一样 看这个推导就行了,
至于
其实手写一下就出来了
6: 1 2 3 6
5:1 5
4:1 2 4
3:1 3
2:1 2
1:1
那么就可以得到 1出现了6次,2出现了3次 完全就可以用 n/i了,应该是积性函数的性质
#include <bits/stdc++.h>using namespace std;const int mod = 1e9+7;const int maxn = 5000010;const int MOD = 500000004;typedef long long ll;ll sum_eu[maxn];map<ll,ll> mp;int phi[maxn];int prime[maxn],euler[maxn],s[maxn]; int res;void init() { res=0; euler[1]=1; for(int i=2;i<maxn;i++) { if(!euler[i]) { prime[res++]=i; euler[i]=i-1; } for(int j=0;j<res&&i*prime[j]<maxn;j++) { if(i%prime[j]==0) { euler[prime[j]*i]=euler[i]*prime[j]; break; } euler[prime[j]*i]=euler[i]*(prime[j]-1); } } for(int i=1;i<maxn;i++) phi[i]=(euler[i]+phi[i-1])%mod; } ll solve(ll x){ if(x<maxn) return phi[x]; if(mp.count(x)) return mp[x]; ll z=x%mod; ll res=0,ans=0; for(ll i=2,nxt=0;i<=x;i=nxt+1) { nxt=x/(x/i); ans+=(nxt-i+1)%mod*solve(x/i)%mod; ans%=mod; } res=(((z*(z+1))%mod*MOD)%mod-ans+mod)%mod; mp[x]=res; return res;}int main(){ ll n; init(); // eratosthenes_sieve(); scanf("%lld",&n); printf("%lld\n",solve(n) );}
阅读全文
0 0
- 【51Nod 1239】欧拉函数之和
- 51nod 1239欧拉函数之和
- 【51NOD 1239】欧拉函数之和
- 51nod 1239 欧拉函数之和
- [51NOD]1239 欧拉函数之和
- 51nod 1239 欧拉函数之和
- 51Nod-1239-欧拉函数之和
- 51Nod 1239 欧拉函数之和
- 51nod 1239 欧拉函数之和
- 51nod 1239 欧拉函数之和
- 51nod 1239 欧拉函数之和
- [杜教筛模板] 51Nod 1239 欧拉函数之和
- 51 NOD 1239 欧拉函数之和(杜教筛)
- [杜教筛] 51Nod 1239: 欧拉函数之和
- 51nod-1040-最大公约数之和(欧拉函数)
- 51NOD 1040 最大公约数之和(分析 + 欧拉函数)
- 51nod-1040-1040 最大公约数之和(欧拉函数)
- 51NOD 1040 1040 最大公约数之和 数论 欧拉函数
- Elasticsearch 批量更新和删除
- Spring源码学习-spring data jpa源码分析
- [java]④自定义按钮 应用在JFrame窗体
- springboot itext下载pdf
- 自我介绍待补充
- 51nod 1239 欧拉函数之和
- 深夜切题——PAT (Basic Level)-1040
- 《mysql必知必会》
- Codeforces-854B
- Apache连接数和连接数的限制
- PAT 1086. Tree Traversals Again (25) 建树。未完全理解
- 深度学习入门到精通培训
- 使用Apache的.htaccess就可以防盗链
- 能修改按钮字体颜色的AlertDialog