标签:数学
题意:求一个数约数为1的个数。
思路:裸裸的欧拉函数。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int eular(int n) { int ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans-=ans/i; while(n%i==0){ n/=i; } } } if(n>1) ans-=ans/n; return ans; } int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); printf("%d\n",eular(n)); } return 0; }
标签:数学
原文地址:http://blog.csdn.net/dominating413421391/article/details/44249311