Предмет: Информатика, автор: Аноним

Срочно!
Раз в неделю Оля ходит в магазин за карандашами для участников художественного кружка. В кружке n участников. Поэтому Оля покупает упаковку карандашей только тогда, когда количество карандашей в ней делится на n.
Дано число n и последовательность чисел — количество карандашей в упаковках, которые Оля покупала каждую неделю. В конце последовательности 0 — карандаши закончились. Выведи из последовательности все числа, которые делятся на n.
Ввод Вывод
2
1
2
3
0
2​


Arthurf: Питон?
Аноним: да

Ответы

Автор ответа: Arthurf
1

Программа

n = int(input('Кол-во участников: '))

Array = input('Кол-во карандашей в упаковках: ')

while True:

   arr = [int(i) for i in Array.split()]

   if arr[-1] == 0:

       arr.remove(0)

       break

print('Числа, которые делятся на',n,': ', [i for i in arr if i % n == 0])

Объяснение:

Вначале вводим кол-во участников, затем кол-во карандашей в упаковках (через пробел!), в конце пишем 0, если нуля не будет то цикл не закончится, затем удаляется из массива '0', и выводятся числа, кратные кол-ву участникам.


Аноним: пишет программа работает слишком долго
Arthurf: Попробуй этот кусок кода:
Arthurf: n = int(input('Кол-во участников: '))
Array = input('Кол-во карандашей в упаковках: ')
arr = [int(i) for i in Array.split()]
if arr[-1] == 0:
arr.remove(0)
print('Числа, которые делятся на',n,': ', [i for i in arr if i % n == 0]
Похожие вопросы
Предмет: Українська мова, автор: yuliya567445
Предмет: Математика, автор: ulka531