poj2478 Farey Sequence

来源:互联网 发布:中日未来关系 知乎 编辑:程序博客网 时间:2024/05/16 07:13
//pku2478//思路,dp,递推方式为dp[i] =dp[i-1]+phi[i];#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std;typedef long long LL;const int maxn=1e6+5;int phi[maxn+10];LL dp[maxn+10];int main(){int n;for(int i=1;i<=maxn;i++)phi[i]=i;for(int i=2;i<=maxn;i+=2)phi[i]/=2;for(int i=3;i<=maxn;i+=2)if(phi[i]==i)for(int j=i;j<=maxn;j+=i)phi[j]=phi[j]/i*(i-1);for(int i=2;i<=maxn;i++)dp[i]=dp[i-1]+phi[i];while(cin>>n&&n)cout<<dp[n]<<endl;}
1 0