重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
很简单,直接用辗转相除法判断这两个数的最大公因数是否为1就好了
为南溪等地区用户提供了全套网页设计制作服务,及南溪网站建设行业解决方案。主营业务为做网站、网站设计、南溪网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
def gcd(a, b):
if a b:
return gcd(b, a)
while a % b != 0:
temp = b
b = a % b
a = temp
return b
def main():
a = 15
b = 10
if gcd(a, b) == 1:
print('互质')
else:
print('不互质')
方案如下: 将另一个py做成一个包,或者直接和调用文件放在同一个目录下; 在调用者文件头引入:from py名字 import *; 这样就可以使用另一个py文件的所有函数了。
# 辗转相除法求最大公约数
def gcd(a, b):
if a b:
a, b = b, a
while a % b != 0:
a, b = b, a % b
return b
gcd(21,49)
程序缩进如图所示
提到最大公约数,那么就不得不说什么是公约数,它是一个能被若干个整数同时均整除的整数。如果一个整数同时是几个整数的约数,称这个整数为它们的“公约数”;公约数中最大的称为最大公约数。对任意的若干个正整数,1总是它们的公因数。
举个例子:30和40的公约数有:1,2,5,10,那么10是这几个里面最大的,就是30和40的最大公约数。
python求最大公约数
1.python求最大公约数设计思路
给定两个数,从1开始尝试,步长为1逐渐递增,为了优化算法,只需要循环到两个数中最小的那个数就可以。所以,第一步就是计算出两个数中最小的数,然后利用for循环从1到最小的那个数进行枚举,如果该数能够同时被两个数整除,则记录下来,直到循环结束,最后,最大的这个就是最大公约数。
特别注意:这里会用到range函数,range(0,5)的结果为0,1,2,3,4注意是没有5的,因此在本例中循环时应该是从1到最小的那个数+1才对。
2.最大公约数的python实现
打开百度APP,查看更多高清图片
说明:在上面的代码中,我们会用到自定义函数的定义方法:def ,两个数的最小数的判断方法,for循环和枚举取值,整除取余,输入输出等内置函数。
最后的输出语句已经限定了函数名是gcd
函数里的算法是求最大公约数的辗转相除法。辗转相除法是一个循环处理过程,所以第二个是while
同理,最后return的应该是n
def gcd(m,n):
r=m%n
while r:
m=n
n=r
r=m%n
else:
return n
gcd 是用来求做大公约数的,例如:
from fractions import gcd
gcd(9,6)
结果是3