题意:求欧拉函数。
//#pragma comment(linker,"/STACK:1024000000,1024000000") #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<vector> #include<cmath> #include<queue> #include<stack> #include<map> #include<set> #include<algorithm> #include <stack> using namespace std; typedef long long lon; const lon SZ=1e6+10,INF=0x7FFFFFFF; int phi[SZ]; void init() { for(int i=1;i<SZ;++i)phi[i]=i; for(int i=2;i<SZ;++i) { if(phi[i]==i) { for(int j=i;j<SZ;j+=i) { phi[j]=phi[j]/i*(i-1); } } } } int main() { std::ios::sync_with_stdio(0); //freopen("d:\\1.txt","w",stdout); init(); int n; cin>>n; cout<<phi[n]<<endl; return 0; }