Может быть Вы, для начала, прочитаете классическое
"Искусство программирования" Кнута? Чтобы не задавать больше вопросов об элементарных алгоритмах, которые должен знать любой студент, изучавший курс программирования.
Эта задача есть в большинстве качественных учебников программирования (руководства во написанию говнокода в духе "освой за 30 дней" не являются ими по определению). И, разумеется, есть в любом справочнике по алгоритмам. Не понимаю, что тут можно было 2 месяца искать?