标签:个数 using 描述 ade red ret 研究 /tmp main
10
3
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch=‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} return x*f; } int n,phi,tot,ans,num[500010],sum=1; int gcd(int a,int b){ if(!b) return a; return gcd(b,a%b); } int main(){ phi=n=read(); int tmp=n; for(int i=2;i*1ll*i<=tmp;++i){ if(tmp%i==0){ ++tot; phi=phi/i*(i-1); while(tmp%i==0){ ++num[tot]; tmp/=i;} } if(tmp==1) break; } if(tmp>1){phi=phi/tmp*(tmp-1); num[++tot]=1;} for(int i=1;i<=tot;++i) sum=sum*(num[i]+1); printf("%d\n",n-phi-sum+1); return 0; }
标签:个数 using 描述 ade red ret 研究 /tmp main
原文地址:http://www.cnblogs.com/huihao/p/7795579.html