2023-9-4 欧拉函数

题目链接:欧拉函数

2023-9-4 欧拉函数_第1张图片

#include 

using namespace std;

int main()
{
    int n;
    cin >> n;
    while(n --)
    {
        int x;
        cin >> x;
        int res = x;
        for(int i = 2; i <= x / i; i++)
        {
            if(x % i == 0)
            {
                res = res / i * (i - 1); // 公式 N * (1 - 1 / p1) * (1 - 1/ p2) ...  
                while(x % i == 0) x /= i;
            }
        }
        if(x > 1) res = res / x * (x - 1);
        cout << res << endl;
    }
    
    return 0;
}

你可能感兴趣的:(算法,c++,数学知识)