📜  素数n模n的素数根(1)

📅  最后修改于: 2023-12-03 15:27:28.122000             🧑  作者: Mango

素数n模n的素数根

什么是素数n模n的素数根

一个整数x被称为模n的素数根,当它是模n下的一个原根且x是一个素数。而当n为素数时,存在至少一个模n的素数根。

程序实现

以下是一段Python代码实现素数n模n的素数根的计算:

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

def solve(n):
    for i in range(2, n):
        if is_prime(i):
            if pow(i, n - 1, n) == 1 and all(pow(i, (n - 1) // p, n) != 1 for p in range(2, int((n - 1) ** 0.5) + 1) if (n - 1) % p == 0):
                return i
    return -1

代码中的is_prime函数用于判断一个数是否为素数,solve函数用于计算素数n模n的素数根。其中,pow(i, n - 1, n) == 1用于判断i是否是n的原根,all(pow(i, (n - 1) // p, n) != 1 for p in range(2, int((n - 1) ** 0.5) + 1) if (n - 1) % p == 0)用于判断i是否是素数n模n的素数根。

示例

以下是一个使用示例:

print(solve(11))  # 输出 2
print(solve(17))  # 输出 3
print(solve(23))  # 输出 5
print(solve(29))  # 输出 2

代码输出结果将依次为2、3、5、2,证明了计算素数n模n的素数根的函数的正确性。

总结

素数n模n的素数根是数论中一个非常基础的概念,对于一些数论问题具有很大的应用价值。对于程序员而言,需要掌握素数n模n的素数根的计算方法,方便在程序中使用。