φ(10) 是多少

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

运行下面这段程序:

本节模型:phi(n) 试除出每个质因子 p,答案乘上 (1 - 1/p)。

#include <array>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

long long phi(long long n) {
    // 欧拉函数:1..n 里和 n 互质的个数
    long long r = n, m = n;
    for (long long p = 2; p * p <= m; p++) {
        if (m % p == 0) {
            while (m % p == 0) m /= p;
            r -= r / p;
        }
    }
    if (m > 1) r -= r / m;
    return r;
}

int main() {
    cout << phi(10) << endl;
}

(本题用 g++ -std=c++17 -O0 编译。)

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论