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/互质

results matching ""

    No results matching ""