Алгоритм разбиения числа на простые слагаемые - 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.

Код к задаче: «Алгоритм разбиения числа на простые слагаемые - Pascal (80224)»

textual
    if cnt < 10 then
    // тут остается цикл по i
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

5   голосов, оценка 4.600 из 5


СДЕЛАЙТЕ РЕПОСТ