私はPythonで完全数のラボを行いました。これは正常に実行され、必要な数を出力します。しかし、(1、1000)を範囲内に配置する必要があるのか、(2、n + 1)で問題ないのかわかりませんか?私に頼む私の指示
「Pythonプログラムを作成して、1から10,000までのすべての完全数を見つけます。完全数が見つかったら、ロジックがそれを出力する必要があります。」
完全数とは何ですか:
数論では、完全数は、適切な正の約数の合計、つまり、数自体を除いた正の約数の合計(アリコート合計とも呼ばれます)に等しい正の整数です。同様に、完全数とは、そのすべての正の約数(それ自体を含む)の合計の半分である数、つまりσ1(n)=2nです。
プログラムを実行すると、6、28、496、および8128が出力されます。
n = 1
while True:
factors = [1]
[factors.append(i) for i in range(2,n+1) if n%i == 0]
if sum(factors) == 2*n: print n
n += 1