欧拉函数快速求质因子的个数
long long f1(long long N) {
long long res;
long long a;
res = a = N;
for (long long i = 2; i * i <= a; i++) {
if (a % i == 0) {
res = res / i * (i - 1);
while (a % i == 0)
a /= i;
}
}
if (a > 1)
return res / a * (a - 1);
return res;
}
欧拉函数求约数的个数
long long tot = 1;
for (long long i = 2; i * i <= ans; i++) {
if (ans % i == 0) {
long long temp = 0;
while (ans % i == 0) {
ans /= i;
temp++;
}
tot *= (temp + 1);
}
}
if (ans > 1)
cout << tot * 2 << endl;
else
cout << tot << endl;