これは私が今まで持っているものです
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
を整数として定義しています。その後、を実行しようとしprint(max(n))
ます。
つまり、max()
単一の整数のを計算しようとします。これがエラーメッセージの原因です。max()のドキュメントにはmax()
、単一の反復可能オブジェクト(リストなど)または複数の値(整数など)の2つの有効な使用法が記載されています。単一の整数は許可されていません。
あなたの意図がよくわからないので、プログラムに小さな変更を加えることはお勧めできません。アプローチを変えることをお勧めします。代わりに、これを行うことができます:
div()
2つの整数のそれぞれを呼び出して、除数の2つのリストを作成します。max()
そのセットで機能します。結果として得られる最大値は、最大公約数です。コードは簡単に記述できる必要があります。問題がある場合は、その試みを示して、さらに助けを求めてください。
ちなみに、あなたのdiv
機能は正しくありません。範囲の上限は、除数としてx + 1
数値を含めるx
ことです。整数はそれ自体を除算します。また、リストを出力するのでdiv()
はなく、リストを呼び出し元のルーチンに返す必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加