模板( 的写法):
利用欧拉函数的积性(如果两个数互质,则它们的欧拉函数的乘积等于这两个数的乘积的欧拉函数)和欧拉函数的计算公式,对于一个正整数n,可以将其分解为质因数的乘积
题目:
代码:
#include<iostream>
using namespace std;
typedef long long ll;
ll n,a;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
scanf("%lld",&a);
ll res=a;//取开始的值
for(int i=2;i<=a/i;i++){
if(a%i==0){
while(a%i==0) a/=i;
res=res/i*(i-1);//防止除法出现问题,先除再乘
}
}
if(a>1) res=res/a*(a-1);//处理漏掉的大质因子
cout<<res<<endl;
}
return 0;
}