#include<bits/stdc++.h>
#define rep(i, a, b) for(int i = a; i <= (b); i++)
const int maxn = (int)1e5 + 5;
using namespace std;
//单个数的欧拉函数值
int Euler(int n)
{
int ret = n;
int m = sqrt(n);
rep(i, 2, m){
if(n % i == 0){
ret = ret / i * (i - 1);
while(n % i == 0)
n /= i;
}
}
if(n > 1) ret = ret / n * (n - 1);
return ret;
}
//1-maxn的欧拉函数值
int euler[maxn];
void init()
{
memset(euler, 0, sizeof(euler));
euler[1] = 1;
rep(i, 2, maxn){
if(!euler[i]){
for(int j = i; j < maxn; j += i){
if(!euler[j]) euler[j] = j;
euler[j] = euler[j] / i * (i - 1);
}
}
}
}