poj 2478
原来欧拉函数也存在递推关系。
代码:
#include<iostream> #include<fstream> #include<cmath> using namespace std; long long b[1000001]; int n; void read(){ // ifstream cin("in.txt"); int i,j,k,ans; for(i=2;i<=1000000;i++) b[i]=i; for(i=2;i<=1000000;i+=2) b[i]/=2; for(i=3;i<=1000000;i+=2) if(b[i]==i) for(j=i;j<=1000000;j+=i) b[j]=b[j]/i*(i-1); for(i=2;i<=1000000;i++) b[i]+=b[i-1]; while(cin>>n){ if(n==0) return; cout<<b[n]<<endl; } } int main(){ read(); return 0; }