Т.к. требуется использовать цикл until, то значит требуется код на языке Паскаль.
1) цикл for
program p_for
var
p: real;
i, n: integer;
begin
readln(n);
p := 1;//начальное значение
for i := 1 to n do
p := p * i;
writeln(p);
end.
2) цикл while
program p_while
var
p: real;
i, n: integer;
begin
readln(n);
i := 1;
p := 1;//начальное значение
while i <= n do
begin
p := p * i;
i := i + 1;
end;
writeln(p);
end.
3) цикл until
program p_until
var
p: real;
i, n: integer;
begin
readln(n);
i := 1;
p := 1;//начальное значение
repeat
p := p * i;
i := i + 1;
until i > n;
writeln(p);
end.
Объяснение:
N = 2^i
N - количество разных вариантов
i - количество информации об одном шаре
Подставляем вместо N число 8
8 = 2^i
i = 3 бит - столько информации получим, когда достанут красный шар