#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
Комментариев нет:
Отправить комментарий