Это   описание,   которое   кажется   вполне   ясным,   далеко   от   алгоритма.
Действительно, если М=
9
5,  
6
2, (1/3)
/2
, то в предложенном варианте
решения поставленной задачи не указано, как искать наименьшее число.
 Этот пример показывает, что понятие алгоритма в интуитивном смысле
требует   уточнения   понятия   данных   (т.е.   указать   каким   требованиям
должны   удовлетворять   объекты,   чтобы   алгоритмы   могли   с   ними
работать),   памяти,   дискретности,   элементарности,   конечности   числа
шагов,   направленности,   детерминированности,   результативности,
массовости.
Пояснения:
1) Приведенное   наивное   (интуитивное)   определение   алгоритма   не
является   точным   математическим   определением,   а   лишь   объясняет
смысл   слова   «алгоритм»,   в   котором   это   слово   используется   в
математике.
2) Характеристиками алгоритма являются:
- детерминированность  (определенность)   –   однозначность   результата
процесса при заданных исходных данных;
- дискретность – расчлененность процесса на отдельные элементарные
акты (шаги, действия), возможность выполнения которых человеком
или машиной не вызывает сомнений, 
- массовость  –   исходные   данные   для   алгоритма   можно   выбирать   из
некоторого   множества   данных   (потенциально   бесконечного),   т.е.
алгоритм   должен   обеспечить   решение   любой   задачи   из   класса
однотипных задач.
Основные требования к алгоритмам.
1) Очевидно, что каждый алгоритм имеет дело с данными: входными,
выходными   и   промежуточными.   В   этом   плане   уточнение   понятия
алгоритм  требует   и   уточнения   понятия   данных,   т.е.  указать,   каким
требованиям должны удовлетворять объекты, чтобы  алгоритмы могли
с   ними   работать.   Ясно,   что   эти   объекты   должны   быть   четко
определены и отличимы  как друг от друга, так и от «необъектов». В
теории   алгоритмов   четкая   определенность   объектов   обусловлена
заданием   их   в   формальном   языке  L=<A,S>,   в   котором   символы
конечного   алфавита   А   рассматриваются   как   элементарные   объекты
для   построения   более   сложных   объектов   конечными   средствами  S
(этот язык   часто  называется языком   операндов в  отличие от языка
описания самого алгоритма – алгоритмического языка).
2) В дальнейшем будем различать:
- описание алгоритма (т.е. инструкции или программы);
- механизм   реализации   алгоритма   (это   может   быть   процессор),
включающий   средства   пуска,   остановки,     реализации
элементарных   шагов,   выдачи   результатов   и   обеспечения
детерминированности процесса в управлении ходом вычислений;
- память данных алгоритма;