Простое решение - перебор, алгоритм которого я написал.
Кстати кому интересно, вот задачка ещё:
Написать
наиболее оптимальным образом функцию, которая возвращает 5 при переданном ей параметре 3, и возвращает 3 при параметре 5
Сразу скажу, что очевидные if или case не являются оптимальными )