某一线互联网公司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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 两个或多个正整数数的公约数是,对于这些数,存在一个正整数,可以整除它们。公约数可能有若干个,而其中最大的就是...
    阿啊阿吖丁阅读 5,326评论 0 0
  • 基本概念 如果数a能被数b整除,a就叫做b的倍数,b就叫做a额约数。几个整数中公有的约数,叫做这几个数的公约数;其...
    海人为记阅读 4,042评论 0 0
  • 定义 1 a,b为整数,如果,,a必定能整除b,记为(读作a整除b)。 定理 1 假设,且,则任何都有。 证明过程...
    人类发展观察者阅读 4,502评论 0 0
  • 基本概念 因数 :若A=m×n,则称m,n是A的因数;A是m,n的倍数 一个数的最大因数和最小倍数都...
    AQ王浩阅读 6,502评论 0 4
  • 基本概念如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能...
    ghfhaifeng阅读 2,976评论 0 1