51nod1135 原根

    xiaoxiao2021-12-14  17

    1135 原根 题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1135 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根。 Input 输入1个质数P(3 <= P <= 10^9) Output 输出P最小的原根。 Input示例 3 Output示例 2 题解:

    阶:gcd(a,m)=1,使得a^r=1(mod m)成立的最小的 r,称为 a 对 模m 的 阶

    φ(m):在[1,m)的区间内与m互质的数的个数。

    因为p为素数,所以φ(p)=p-1, 这题就是要找最小的a使得 a^(p-1)%p = 1 成立(根据费马小定理,该式一定成立),

    先求p-1所有不同的 质因子 p1,p2…pm,

    对任何整数 a ∈[1,p-1], 检验 a 是否为 p 的原根,

    检验方法:a^((p-1)/p1),a^((p-1)/p2),...a^((p-1)/pm) 中是否存在一个 模p 等于 1 ,

    存在的话 a 就不是 模p 的一个原根(即p-1就不是a对模p的阶),否则a就为原根。

    转载请注明原文地址: https://ju.6miu.com/read-965179.html

    最新回复(0)