Алгоритм разбиения числа на простые слагаемые - Pascal (80224)
Формулировка задачи:
Есть код для разложения числа на простые слагаемые. Если число большое, то количество слагаемых может быть слишком много. Как ввести ограничение на разложение до 10 слагаемых? (Внесите сразу в код, пожалуйста)
код:
var n, cnt :longint; a :array[1 .. 10000] of longint; function IsPrime(x :longint) :boolean; var p :longint; begin IsPrime := true; p := 2; while (p * p <= x) do begin if (x mod p = 0) then IsPrime := false; p := p + 1; end; end; procedure rec(x, last :longint); var i :longint; begin if (x = 0) then begin for i := 1 to cnt do write(a[i], ' '); writeln; exit(); end; for i := last to x do if (IsPrime(i)) then begin inc(cnt); a[cnt] := i; rec(x - i, i); dec(cnt); end; end; begin readln(n); rec(n, 2); end.
Решение задачи: «Алгоритм разбиения числа на простые слагаемые»
textual
Листинг программы
if cnt < 10 then // тут остается цикл по i
Объяснение кода листинга программы
- Условие: проверка, если значение переменной
cnt
меньше 10. - Действие: если условие истинно, цикл продолжает выполнение для переменной
i
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д