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真是妙啊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章