Команда For:
For x:=1 to 9 do Writeln(x)
Команда While:
x:=-5;
While x<9 do
begin
y:=abs(x);
Writeln(y);
x:=x+1
end;
Объяснение:
Цикл For:
For переменная-счетчик := начальное значение to конечное значение do
For x:=1 to 9 do
x - переменная-счетчик
1 - начальное (минимальное) значение переменной-счетчика
9 - конечное (максимальное) значение переменной-счетчика
начальное значение <= конечного значения (если это не так, то тело цикла не выполнится ни разу)
В цикле переменная-счетчик автоматически увеличивается на 1 каждый раз при выполнении тела цикла, пока не достигнет конечного значения включительно.
В цикле While переменную надо увеличивать (или уменьшать) в теле цикла, но зато это можно делать на нужный шаг.
Утверждение: если всё вышеперечисленное не выполнено, можно просто много раз делить на максимальное из чисел; на последнем шаге, возможно, надо будет вычесть максимальное, а не разделить на него. При этом будет получен 0 за минимальное число шагов. Это можно показать и строго, но "на пальцах" это верно, так как деление на максимальное из чисел - операция, с которой число уменьшается быстрее всего.
Код (Python 3):
N = int(input())
_ = int(input())
A = list(map(int, input().split()))
if N == 0:
print(0)
elif 0 in A:
print(1)
elif all(elem == 1 for elem in A):
print(N)
else:
M = max(A)
count = 0
while N != 0:
if N != M:
N //= M
else:
N -= M
count += 1
print(count)