Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Как сократить код, убрав and?

#python


a=0
i=1
while i==1:
    a=a+1
    if a % 1==0 and a % 2==0 and a % 3==0 and a % 5==0 and a % 6==0 and a % 7==0 and \
       a % 8==0 and a % 9==0 and a % 10==0 and a % 11==0 and a % 12==0 and \
       a % 13==0 and a % 14==0 and a % 15==0 and a % 16==0 and a % 17==0 and \
       a % 18==0 and a % 19==0 and a % 20==0:
        print(a)
        i=i+1
    else:
        pass

    


Ответы

Ответ 1



Попробуйте так: if all(a%i == 0 for i in range(1, 21)): ...

Ответ 2



if all(a%num == 0 for num in numbers) где numbers - список с вашими числами. Единицу, кстати, можно выбросить - остаток любого числа от деления на единицу равен нулю. Да и двойку тоже. И еще несколько чисел.

Ответ 3



Более эффективное решение нахождения наименьшего общего кратного (НОК) для списка чисел: from functools import reduce def gcd(a, b): while(b): a, b = b, a % b return a def lcm(a, b): return abs(a * b) // gcd(a, b) res = reduce(lcm, range(2, 21)) print(res) # 232792560

Комментариев нет:

Отправить комментарий