Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 04.01.2017
Сообщений: 13

Алгоритм разбиения числа на простые слагаемые

04.01.2017, 18:20. Показов 6335. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть код для разложения числа на простые слагаемые. Если число большое, то количество слагаемых может быть слишком много. Как ввести ограничение на разложение до 10 слагаемых? (Внесите сразу в код, пожалуйста)
код:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2017, 18:20
Ответы с готовыми решениями:

Алгоритм разбиения числа на простые слагаемые
Помогите написать алгоритм разбиения числа на простые слагаемые. Пример Ввод: 21 Вывод: 19+2 17+2+2 13+7 13+5+2 ...

Перечислить все разбиения целого положительного числа на слагаемые
Ребята, в общем хотел обратиться за помощью, сижу ломаю голову, но не могу догадаться как реализовать эти разбиения, буду благодарен за...

Перечислить все разбиения натурального числа на натуральные слагаемые
у меня есть код, но он работает неправильно. Я так понимаю, что где-то надо сделать рекурсию, помогите пожалуйста, разобраться. #include...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
04.01.2017, 19:20
Лучший ответ Сообщение было отмечено san431 как решение

Решение

Перед 29-ой строкой добавить ограничение:
Pascal
1
2
    if cnt < 10 then
    // тут остается цикл по i
1
0 / 0 / 0
Регистрация: 04.01.2017
Сообщений: 13
04.01.2017, 19:21  [ТС]
Код правильный и работает. Он разбивает число на сумму простых чисел. все строчки правильно он разбил. Но мне нужно ввести ограничение на количество слагаемых (например разложить число 200 на 10 простых слагаемых)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33195 / 21491 / 8233
Регистрация: 22.10.2011
Сообщений: 36,879
Записей в блоге: 12
04.01.2017, 19:21
Цитата Сообщение от bormant Посмотреть сообщение
остальное -- фигня какая-то...
Что не так-то? И 2 и 3 и 5 - простые слагаемые
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
04.01.2017, 19:23
Неправильно то, что я задание прочитал неверно, про "простые множители". Виноват.

PS. Что ж форум-то так тормозит сегодня...
0
0 / 0 / 0
Регистрация: 04.01.2017
Сообщений: 13
04.01.2017, 19:23  [ТС]
Огромное спасибо, очень помогли!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.01.2017, 19:23
Помогаю со студенческими работами здесь

Перечислить все разбиения целого положительного числа N на целые положительные слагаемые
Перечислить все разбиения целого положительного числа N на целые положительные слагаемые (разбиения, отличающиеся лишь порядком слагаемых,...

Вывести все "интересные" разбиения числа на слагаемые
Недавно на кружке математики Дезидерий узнал о разбиении на слагаемые. Разбивкой числа n на слагаемые называется представление его в виде...

Найти количество разложений данного натурального числа на простые слагаемые
Здравствуйте всем! У меня на руках задача, над которой вот уже какую неделю голову ломаю. Решать её надо либо на QBasic, либо на Pascal...

НЕ Рекурсивное разложение числа на слагаемые. Алгоритм Эрлиха
У меня возникла задача разложения числа на слагаемые из этой задачи: https://www.cyberforum.ru/combinatorics/thread1275305.html начал...

Быстрый алгоритм на простые числа
Требуется найти количество простых чисел на промежутке от А до В, обычною проверку на просто прошу не писать, так как нужен быстрый способ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru