欧拉函数模板
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll Phi(ll n) {//返回n以下互质的数量
ll phi = n;
for(int i = 2 ; i*i <= n ; i++) {
if(n%i==0) {
phi = phi/i*(i-1);
while(n%i==0)
n/=i;
}
}
if(n!=1)
phi = phi/n*(n-1);
return phi;
}
int main() {
int tc;
scanf("%d",&tc);
while(tc--) {
ll n;
scanf("%lld",&n);
printf("%lld\n",Phi(n));
}
}

浙公网安备 33010602011771号