Пустой список Python во время понимания списка - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь найти, есть ли число (кроме 2017), чьи положительные делители суммируют с 2018. Вот мой код Python 3.Я могу сделать это первым способом, но хотел попробовать со списком.Но список пуст, когда я его запускаю.

import math

def divisors(x):
  divisors = []
  for y in range(1,math.floor(x*0.5)+1):
    if x%y==0:
      divisors.append(y)
  divisors.append(x)
  return divisors

for x in range(2018):
  if sum(divisors(x)) == 2018:
    print(x,sum(divisors(x)))

print([x for x in range(1,2018) if (sum(divisors(x)))==0])

Также будут приветствоваться любые другие советы по упрощению кода или повышению эффективности!

1 Ответ

0 голосов
/ 18 ноября 2018

Просто проверьте, равна ли сумма делителей 2018 вместо 0

import math

def divisors(x):
  divisors = []
  for y in range(1,math.floor(x*0.5)+1):
    if x%y==0:
      divisors.append(y)
  divisors.append(x)
  return divisors

for x in range(2018):
  if sum(divisors(x)) == 2018:
    print(x,sum(divisors(x)))

print([x for x in range(1,2018) if (sum(divisors(x)))==2018])
...