某一线互联网公司python测试开发笔试题:求两个正整数的最大公约数(或判断是否互斥)

要求

求两个正整数的最大公约数(或判断是否互斥)。

如果两个数字的最大公约数为1,则它们为互质数。

编写Python程序来检查两个给定的数字是否互质。 如果两个数字互质,则返回True,否则返回false。

方法小结

  • 辗转相除法

1.将两整数求余 a%b = x

2.如果x = 0;则b为最大公约数

3.如果x != 0,则 a = b;b = x;继续从1开始执行

4.也就是说该循环的是否继续的判断条件就是x是否为0

  • 辗转相减法

1.如果a>b ,a = a - b;

2.如果b>a ,b = b - a;

3.假如a = b ,则 a或b 是最大公约数

4.如果a != b,则继续继续相减,直至a = b

  • 枚举法

1.选出a,b中最小的一个数字放到min中

2.分别用a,b对i求余数,即看是否能被整除

3.直到a,b同时都能被i整除

4.如不能整除,i加一 继续开始执行,直到i等于min

参考资料

参考答案

代码地址:https://github.com/china-testing/python-testing-examples/tree/master/interview

is_coprime.py

  • 演示
$ python is_coprime.py 
1
True
1
True
3
False
5
False
15
False

推荐阅读更多精彩内容