python 1000以内の完全数を求める

642 ワード

題目:1000以内の完全な数を求める(もし1つの数がちょうどその因子の和に等しいならば、この数を“完全な数”と称して、また完璧な数あるいは完備な数と称します.例えば:第1の完全な数は6で、それは約数の1、2、3、6があって、それ自身の6を除いて、残りの3つの数は加算して、1+2+3=6.第2の完全な数は28で、それは約数の1、2、4、14、28があって、それ自身の28を除いて、残りの5つの数は加算して、1+2+4+14=28.)
問題解決の考え方:
  • forループは、それぞれ1000以内のすべての整数をリストします.
  • は、それぞれの整数を彼より小さい整数で割って、整除するとその整数因子として記録し、すべての因子を加算して和を求め、和を求めた後、この整数と等しいかどうかを判断し、等しければその整数は完全数である.
  • は、1000以内の完全な数を格納するために空のリストを定義する.

  • 解題コード:
        L=[]
        for i in range(1,1001):
          k=0
          for j in range(1,i):
            if (i%j==0):
              k+=j
          if i==k:
            L.append(i)
        print(L)
    

    印刷結果:[6,28,496]