Для кожного цілого числа з інтервалу [A, B] знайдіть всі
його дільники, що кратні 5 та їх кількість//Python
Ответы
A = int(input("Введіть початкове число інтервалу: "))
B = int(input("Введіть кінцеве число інтервалу: "))
divisors = []
for i in range(A, B+1):
if i % 5 == 0:
divisors.append(i)
print("Дільники, що кратні 5:", divisors)
print("Кількість дільників, що кратні 5:", len(divisors))
Метод append - це функція, що додає новий елемент в кінець списку (list) у програмуванні. Наприклад, якщо ми маємо список [1, 2, 3], то виклик методу append з аргументом 4 (list.append(4)) змінить список на [1, 2, 3, 4].
Ответ:
for x in range (((int(input('a: '))-1)//5+1)*5,int(input('b: '))+1,5):
print('\nx=',x,'\ndivisors =',*(i for i in range(5,x+1,5) if x%i==0),'\nnumber of divisors: ',sum(1 for i in range(5,x+1,5) if x%i==0))
Объяснение:
2 строки.
Как это работает?
Запрашивает a и b, формирует диапазон от a до b чисел, для которых надо найти делители. Т.к. делители кратны 5, то понятно что и нет смысла в этот диапазон запихивать что-то не кратное 5.
Затем по порядку берет эти числа и находит для них делители кратные 5.
В выводе все видно.
Оптимизации сделаны не все, но как по мне достаточно