@asyasb

Почему вместе с четными делителями выводятся и нечетные?

Программа должна выводить 4 четных делителя, но она выводит ещё и нечетные (+ не выводит максимальный делитель)
for x in range(190201,190280):
    sq=int(x**0.5)
    d=set()
    for i in range(1,sq+1):
        if x%i==0 and i%2==0:
            d.add(i)
            d.add(x//i)
    if len(d)==4:
        d=sorted(d)
        print(d)
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
@asyasb Автор вопроса
если кому-то понадобиться, то вот другое решение
for n in range(190201,190280+1):
  a = []
  for d in range(1,n+1):
    if n % d == 0 and d%2==0:
      a.append(d)
  if len(a) == 4:
      a.reverse()
      print(*a)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MDan_Twenty_One
Строку "if x%i==0 and i%2==0:" замени на "if x % i == 0 and i % 2== 0 and (x // i) % 2 == 0:"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы