观察法雷级数的形式,分子分母均是1~n中不互质的数组成,很容易得到 F(n)=φ(2)+φ(3)+....+φ(n-1)+φ(n)
#include <iostream>
using namespace std;
const int maxn =1000000+5;
typedef long long LL;
LL ph[maxn];
void getph()
{
for(int i=1;i<maxn;i++) ph[i]=i;
for(int i=2;i<maxn;i+=2) ph[i]/=2;
for(int i=3;i<maxn;i+=2)
if(ph[i]==i){
for(int j=i;j<maxn;j+=i)
ph[j]=ph[j]/i*(i-1);
}
for(int i=3;i<maxn;i++)
ph[i]+=ph[i-1];
}
int main(){
int n;
getph();
while(cin>>n&&n){
cout<<ph[n]<<endl;
}
return 0;
}