C++
$\color{#cc33ff}{— > 算法基础课题解}$
欧拉函数:
$1 ∼ N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。$
$code:$
时间复杂度:$O(sqrt(n))$
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
while(n --) {
int a;
cin >> a;
int res = a;
for (int i = 2; i <= a / i; i ++)
if (a % i == 0) {
//res = res * (1 - 1 / i);
res = res / i * (i - 1);
while (a % i == 0) a /= i;
}
if (a > 1) res = res / a * (a - 1);
cout << res << endl;
}
return 0;
}
tql