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