计算 N 的欧拉函数,欧拉函数求 1~N 中与 N 互质的数的个数,套用模板即可。
#include <iostream>
using namespace std;
//计算n的欧拉函数
int eular(int n)
{
int ans = n;
for (int i = 2; i * i <= n; i++)
{
if (n % i == 0)
{
ans = ans / i * (i - 1);
while (n % i == 0) //完全消除质因子i
n /= i;
}
}
if (n > 1) //n本身为质数,没有除本身外的质因子
ans = ans / n * (n - 1);
return ans;
}
int main()
{
int CN;
cin >> CN;
int N;
while (CN--)
{
cin >> N;
cout << eular(N) << endl;
}
return 0;
}
继续加油。