给定 n 个正整数 ai,请你求出每个数的欧拉函数。
输入格式
第一行包含整数 n。
接下来 n 行,每行包含一个正整数 ai。
输出格式
输出共 n 行,每行输出一个正整数 ai 的欧拉函数。
数据范围
1≤n≤100,
1≤ai≤2×109
输入样例:
3
3
6
8
输出样例:
2
2
4
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cmath>
#include <queue>
using namespace std;
typedef unsigned long long ull;
const int N = 1e6+10,P=1e9+7 ;
int n, m,len=1,z=0;
int a[110],dist[N];
bool st[N];
int dx[]= {1,-1,2};
int main()
{
int x,y,i,j,t;
cin>>t;
while(t--)
{
cin>>n;
int sum=0,cnt=n;
for(i=2; i<=n/i; i++)//找质因子
{
if(n%i==0)
{
cnt=cnt/i*(i-1);//防止小数所以先除i
while(n%i==0)//把质因子倍数除尽
n=n/i;
}
}
if(n>1)
cnt=cnt/n*(n-1);
cout<<cnt<<endl;
}
return 0;
}