【poj2478】Farey Sequence

时间:2023-03-08 18:53:16
【poj2478】Farey Sequence

题意:

求前n项的欧拉函数之和

题解:

预处理出所有欧拉函数 赤裸裸的模版题- - 没什么好说的

代码:

 #include <cstdio>
typedef long long ll;
const ll N=;
ll n,phi[N],pri[N],bo[N];
void makepri(){
for (ll i=;i<=N;i++){
if (!bo[i]){
pri[++pri[]]=i;
phi[i]=i-;
}
for (ll j=;j<=pri[] && i*pri[j]<=N;j++){
bo[i*pri[j]]=;
if (i%pri[j]) phi[i*pri[j]]=phi[i]*(pri[j]-);
else{
phi[i*pri[j]]=phi[i]*pri[j];
break;
}
}
}
}
int main(){
makepri();
for (ll i=;i<=N;i++) phi[i]+=phi[i-];
while (scanf("%I64d",&n),n) printf("%I64d\n",phi[n]);
}