Алгоритм разбиения числа на простые слагаемые - Pascal (80224)

Узнай цену своей работы

Формулировка задачи:

Есть код для разложения числа на простые слагаемые. Если число большое, то количество слагаемых может быть слишком много. Как ввести ограничение на разложение до 10 слагаемых? (Внесите сразу в код, пожалуйста) код:
Листинг программы
  1. var
  2. n, cnt :longint;
  3. a :array[1 .. 10000] of longint;
  4. function IsPrime(x :longint) :boolean;
  5. var p :longint;
  6. begin
  7. IsPrime := true;
  8. p := 2;
  9. while (p * p <= x) do begin
  10. if (x mod p = 0) then
  11. IsPrime := false;
  12. p := p + 1;
  13. end;
  14. end;
  15. procedure rec(x, last :longint);
  16. var i :longint;
  17. begin
  18. if (x = 0) then begin
  19. for i := 1 to cnt do
  20. write(a[i], ' ');
  21. writeln;
  22. exit();
  23. end;
  24. for i := last to x do
  25. if (IsPrime(i)) then begin
  26. inc(cnt);
  27. a[cnt] := i;
  28. rec(x - i, i);
  29. dec(cnt);
  30. end;
  31. end;
  32. begin
  33. readln(n);
  34. rec(n, 2);
  35. end.

Решение задачи: «Алгоритм разбиения числа на простые слагаемые»

textual
Листинг программы
  1.     if cnt < 10 then
  2.     // тут остается цикл по i

Объяснение кода листинга программы

  1. Условие: проверка, если значение переменной cnt меньше 10.
  2. Действие: если условие истинно, цикл продолжает выполнение для переменной i.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы