python - 尝试编写一个函数来说明它们是否是相对素数。我的错误在哪里?
问题描述
我正在尝试编写一个函数,该函数在将两个单独的整数作为参数并确定它们是否是相对素数后返回真或假。我有时会得到正确的输出,但并非总是如此。有谁知道这里可能是什么问题?这是我的代码。
def is_relatively_prime(n, m):
while m != 0:
n % m
return(n, m) == 1
解决方案
删除假循环和丢弃模计算。并且(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
推荐阅读
- swift - 如何在 SwiftUI 中从登录视图转换到 tabView
- r - R中for循环中索引的含义
- python - Beautiful Soup - 从标签定义中获取价值
- python - 可调用类的查找规则:A() vs A.__call__()
- user-interface - 从堆栈中删除文档
- javascript - 如何将图像上传到 phpmyadmin 数据库并将其保存到特定的用户名
- javascript - 复制父级
- 内容到另一个
- 点击?
- 内容到另一个
- php - 分配查询时 Laravel union 500 错误
- python - 即使我使用 np.random.choice(),我是否有理由一遍又一遍地获得相同的输入?
- pointers - 使用变量地址调用指针接收器方法