📌  相关文章
📜  计算GCD等于给定数字的自然数对(1)

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

计算GCD等于给定数字的自然数对

本程序旨在找出所有GCD等于给定数字的自然数对。

程序逻辑
  1. 用户输入一个正整数n作为GCD值;
  2. 程序通过嵌套循环枚举出所有的自然数对;
  3. 对于每一对自然数,使用math库中的gcd函数计算它们的最大公约数;
  4. 如果两个自然数的最大公约数等于n,将它们输出到结果列表中。
代码实现
import math

n = int(input("请输入一个正整数n作为GCD值:"))
result = []

for i in range(1, n+1):
    for j in range(i+1, n+1):
        if math.gcd(i, j) == n:
            result.append((i, j))

print("GCD等于{}的所有自然数对为:{}".format(n, result))
示例运行

以下以n=3为例:

请输入一个正整数n作为GCD值:3
GCD等于3的所有自然数对为:[(3, 6), (3, 9), (3, 12), (3, 15), (3, 18), (3, 21), (3, 24), (3, 27), (3, 30)]
复杂度分析

本程序使用了两层嵌套循环,在最坏的情况下需要执行n*(n-1)/2次循环,时间复杂度为O(n^2)。由于程序中只进行了简单的数值计算,空间复杂度为O(1)。在数据量较小的情况下,本程序的性能表现较为出色。