Сразу говорю, я native speaker.

Хочу узнать правила выбора формы множественного числа после числительных.

Например, 0 рублей, 1 рубль, 2 рубля, 3 рубля, 4 рубля, 5 рублей, ...

Я прикладной математик, поэтому привык всё раскладывать по полочкам. Использую следующий алгоритм:
1) Для каждого существительного я запоминаю 3 формы. В случае существительного «рубль», это: первая — «1 рубль», вторая — «3 рубля», третья — «5 рублей».
2) Если номер длиннее одной цифры, и предпоследняя цифра равна 1, то использую третью форму. Примеры: «12 рублей», «1019 рублей».
Иначе:
3) Если номер оканчивается на 1, то использую первую форму: «1 рубль», «21 рубль».
4) Если номер оканчивается на 2, 3 или 4, то использую вторую форму: «2 рубля», «4 рубля».
5) Во всех остальных случаях (если номер оканчивается на 0, 5, 6, 7, 8, 9), использую третью форму: «0 рублей», «25 рублей», «30 рублей», «107 рублей».

Проблема в том, что этот алгоритм конкретно нагружает мозг, и я иногда запинаюсь во время устной речи. В то же время те люди, с которыми я общался, такой проблемы не имеют. Видимо, они используют какой-то более простой/быстрый алгоритм. Но, к сожалению, ничего проще мне не удалось придумать.

Кто-нибудь помнит школьную программу? Что там говорилось насчёт числительных?

Кроме того, меня интересуют падежи, но это вопрос для отдельной темы.