欧拉函数
int ol (int x)
{
int ans = 1;
for (int i = 1; prime[i] * prime[i] <= tot ; i + +)
{
if (x % prime[i] == 0)
{
ans * = (prime[i] - 1);
x / = prime[i];
while (x % prime[i] == 0)
{
x / = prime[i];
ans * = prime[i];
}
}
}
return x > 1 ? x - 1 : ans;
}

浙公网安备 33010602011771号