Ответ:

Чтобы использовать наименьшее количество банкнот, последовательно берём максимально возможное число банкнот каждого достоинства — от большей к меньшей.

s = int(input())

k500 = s // 500
s %= 500
k100 = s // 100
s %= 100
k50 = s // 50
s %= 50
k10 = s // 10

print('Следует сдать:')
print(f'банкнот по 500 руб. — {k500} шт.')
print(f'банкнот по 100 руб. — {k100} шт.')
print(f'банкнот по 50 руб. — {k50} шт.')
print(f'банкнот по 10 руб. — {k10} шт.')

Для примера 845: после выдачи одной банкноты 500 рублей остаётся 345; затем выдаются 3 банкноты по 100 рублей, 0 по 50 и 4 по 10 рублей.