Python解题-符合要求的自然数对

题目

【问题描述】

编程输出符合如下要求的自然数对:它们的和为667,它们的最小公倍数除以最大公约数的商为120。输出格式为每对一行,小数在前,大数在后,两数间用逗号分隔,多对则按每对中小数的大小升序排列先后。

【输入形式】

无输入。

【输出形式】

每个自然数对一行,小数在前,大数在后,两数间用逗号分隔,多对则按每对中小数的大小升序排列先后。

思路

设两数为i,(667-i),定义求最大公约数的函数循环到333,成立则输出

代码

g=0
def  gys(x,y):
    if x > y:
        s = y
    else:
        s = x
    for i in range(1, s + 1): #range(s)会出现0作为除数
        if (x % i == 0) and (y % i == 0):
            a = i
    return a
for h in range(1,334):
    a = 667 -h
    if h*a == 120* gys(h,a)*gys(h,a):
        print(h,",",a)

Python真是妙啊

发布了30 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44616044/article/details/88817394
今日推荐