1∼N 中与 N 互质的数的个数被称为欧拉函数,(互质:和N只有一个公约数为1的数)
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
while(n -- ){
int a;
cin>>a;
int res = a;
for(int i = 2; i <= a / i; i ++ ){
if(a % i == 0){
res = res / i * (i - 1);//公式变形,一直都是整除,避免出现小数,产生误差
while(a % i == 0){
a /= i;
}
}
}
if(a > 1) res = res / a * (a - 1);
cout<<res<<endl;
}
return 0;
}