首页 > 解决方案 > 尝试编写一个函数来说明它们是否是相对素数。我的错误在哪里?

问题描述

我正在尝试编写一个函数,该函数在将两个单独的整数作为参数并确定它们是否是相对素数后返回真或假。我有时会得到正确的输出,但并非总是如此。有谁知道这里可能是什么问题?这是我的代码。

def is_relatively_prime(n, m):
while m != 0:
    n % m
    return(n, m) == 1

标签: python

解决方案


删除假循环和丢弃模计算。并且(a, b)在数学中是 gcd 的符号,但在 Python 中不是。固定的:

from math import gcd

def are_relatively_prime(n, m):
    return gcd(n, m) == 1

或者自己编写典型的 gcd 算法:

def are_relatively_prime(n, m):
    while m:
        n, m = m, n % m
    return abs(n) == 1

推荐阅读