#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=100000;
int phi[maxn];
void phi_table(int n){
for(int i=2;i<=n;i++) phi[i]=0;
phi[1]=1;
for(int i=2;i<=n;i++)
if(!phi[i])
for(int j=i;j<=n;j+=i){
if(!phi[j]) phi[j]=j;
phi[j]=phi[j]/i*(i-1);
}
}
int main(){
int n;cin>>n;
phi_table(n);
for(int i=1;i<=n;i++) cout<<phi[i]<<endl;
}
【数论】用类似筛法的方法计算一段欧拉函数值
最新推荐文章于 2019-02-09 15:19:39 发布