Помогите оптимизировать код и, мб, подкорректировать, пожалуйста
num_of_students = int(input())
a = 1
if num_of_students <= 4:
print(0)
elif num_of_students == 5:
print(1)
else:
for i in range(5, num_of_students):
a += 1
print(a)
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Приведённое решение неверное.
Останутся на месте студенты с номерами
1 + k*20
2 + k*20
3 + k*20
4 + k*20
где k -целое число, а 20 = НОК(4,5)
Таким образом, нужно посчитать количество таких студентов, и отнять от общего количества. Справитесь?
В каждой двадцатке четыре остаются на месте. Значит, можно найти количество оставшихся, разделив целочисленно (n-1) на 20 и умножив результат на 4. При этом не учли последнюю двадцатку, в которую может входить от 0 до 4 человек - для этого нужно проверить остаток от деления (n-1)%20
