P208: Determine whether two positive integer numbers are coprime
检测两个正整数是否互质。
互质(英文:coprime,符号:⊥,又称互素、relatively prime、mutually prime、co-prime)。在数论中,如果两个或两个以上的整数的最大公因数是 1,则称它们为互质。依此定义:
- 如果数体是正整数 ,那么 1 与所有正整数互质。
- 如果数体是整数 ,那么 1 和 -1 与所有整数互质,而且它们是唯一与 0 互质的整数。
两个整数 a 与 b 互质,记为 。wiki-coprime
照例先写测试用例:
from python99.arithmetic.p208 import coprime
def test_coprime():
assert coprime(35, 64) == True
assert coprime(36, 63) == False
由「互质」的定义可知「最大公因数为1的两个整数为互质」。所以,祇需求出最大公因数再判断其是否为1即可。「求最大公因数」已在P207实现,可以直接重用。
代码实现:
# Determine whether two positive integer numbers are coprime
from python99.arithmetic.p207 import gcd
def coprime(a, b):
return gcd(a, b) == 1
参考文献
wiki-coprime. https://zh.wikipedia.org/wiki/互质 ↩