[英]Using a function that finds divisors, find the greatest common divisor of any two given two positive integers
這是我到目前為止所擁有的
def div(x):
A=[]
for i in range(1,x):
if x%i==0:
A.append(i)
print(A)
div(45)
div(50)
n=0
for i in range(1, min(45, 50)+1):
if 45%i==50%i==0:
n+=1
print(max(n))
TypeError Traceback (most recent call last)
<ipython-input-8-80ad9173d3fa> in <module>
11 if 45%i==50%i==0:
12 n+=1
---> 13 print(max(n))
TypeError: 'int' object is not iterable
我嘗試了多種邏輯,但最終都出現了一些錯誤。 這是最合適的。 我還是個新手,所以一個簡單的程序仍然給我帶來了問題。 這個問題只是用來測試我們的邏輯構建。
您的行n=0
將名稱n
定義為 integer。 然后稍后您嘗試執行print(max(n))
。
換句話說,您嘗試計算單個 integer 的max()
。 這就是引發您的錯誤消息的原因。 max() 的文檔給出了 max() max()
兩種有效用法:單個可迭代(例如列表)或多個值(例如整數)。 不允許使用單個 integer。
我不確定你的意圖是什么,所以我不能建議你對你的程序做一點小改動。 我建議你改變你的方法。 相反,您可以這樣做:
div()
,從而產生兩個除數列表。max()
將在該集合上工作。 得到的最大值是你的最大公約數。代碼應該很容易編寫。 如果您有困難,請展示您的嘗試並尋求更多幫助。
順便說一句,您的div
function 不正確。 范圍的上限應該是x + 1
以包含數字x
作為除數 - 任何 integer 都會自行除。 而不是打印列表, div()
應該將列表返回給調用例程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.