Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
4 / 4 / 0
Регистрация: 13.12.2012
Сообщений: 20

Разложение натурального числа на два простых

13.12.2012, 08:15. Показов 1536. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу...
нужно разложить натуральное число на два простых всеми возможными способами.
вот мои наработки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdlib>
#include <iostream>
using namespace std;
int a,b,jj,i,ii,ij,ji,m,iii,iij,c[500],b[500],cd;
 
int main ()         
{          cd=0;    
    cout<<"vvodite chislo"; cin>>a;
     if (a<3) 
     {  if (a<0) {cout<<"error! a<0"; return 0;} else
     if (a==1) {cout<<"error! a=1"; return 0;} else  {cout<<"1 1"; return 0;}
              
     }
      else 
     { m=sqr(a);ij=0; iij=0;
    for (i=1; i<a; i++) {for (ii=2; ii<m; ii++) {if (a%i==0) cd++} if(cd==0) {c[ij]=i; ij++;}}
      if
     }     for (jj=0; jj<ij; jj++) {cout<<c[jj]<<"  "<<b[]}
}
я запутался в коде

заранее благодарю...

Добавлено через 44 секунды
не могу понять, что дальше
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.12.2012, 08:15
Ответы с готовыми решениями:

Разложение натурального числа
Есть такая задача: Составить программу, которая выдаёт представление натурального числа в виде суммы 5 слагаемых, где каждое слагаемое...

Разложение натурального числа
Помогите,пожалуйста, написать программу задание:написать программу,реализующую жадный алгоритм(минимизация числа слагаемых) для...

Разложение Натурального числа
Привет.Помогите пожалуйста решить задачу. Разложить натуральное число на простые множители (вывести, например, 36=1*2*2*3*3 или 7 = 1*7)....

5
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
13.12.2012, 08:25
Цитата Сообщение от White_volf Посмотреть сообщение
нужно разложить натуральное число на два простых
Что? Только на два? А если в числе не 2 простых числа?

Цитата Сообщение от White_volf Посмотреть сообщение
всеми возможными способами
Что?? А ничего, что количество способов всегда равно единице?
1
4 / 4 / 0
Регистрация: 13.12.2012
Сообщений: 20
13.12.2012, 08:51  [ТС]
ну то есть разложить число на суммы двух простых чисел.

нет не один... по заданию.
например: 6 раскладывается в строку: 1 5, 5 1, 3 3

Добавлено через 3 минуты
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cmath>
#include <cstdlib>
#include <iostream>
using namespace std;
int a,b,jj,i,ii,iii,iij,ij,ji,m,k,c[500],cd;
 
int main ()         
{          cd=0;    
    cout<<"vvodite chislo"; cin>>a;
     if (a<3) 
     {  if (a<0) {cout<<"error! a<0"; return 0;} else
     if (a==1) {cout<<"error! a=1"; return 0;} else  {cout<<"1 1"; return 0;}
              
     }
      else 
     { m=sqrt(a);ij=0; iij=0;
    for (i=1; i<a; i++) {for (ii=2; ii<m; ii++) {if (a%i==0) cd++;} if(cd==0) {c[ij]=i; ij++;}}
     }
     for (jj=0; jj==ij; jj++) {d=a-c[jj]; k=sqrt(d[jj]); 
     {for (iii=2; iii<k; iii++)   {if (a%iii==0) cd++} if(cd==0) {cout<<c[jj]<<" "<<b[jj];}}
     cin>>cd
}
Добавлено через 44 секунды
в чём ошибка?
как исправить?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
13.12.2012, 09:18
C++
1
m=sqrt(a)
Объяви a не как int, а как double. Функция sqrt принимает значения только дабловского типа.
Ну или как вариант:
C++
1
m=sqrt((double)a)
И перепиши код под правильное форматирование. Все глаза сломаешь.
Где-то со скобочками косяк и с именами переменных.
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.12.2012, 09:35
White_volf, далеко не каждое число раскладывается именно на два простых:
1. Если число равно произведению трёх и более простых, то как его не дели на простое, простое частное не получится, так как частное числа и одного его делителя есть произведение всех остальных его делителей, а произведение хотя бы двух простых делителей делится на оба, на себя и на 1 итого имеет 4 делителя, простым не являясь.
2. Если число равное произведению даже двух простых, но хотя бы одно из них входит в степени с показателем больше 1, то как его не дели на простое, простое частное не получится, так как частное числа и одного его делителя есть произведение всех остальных его делителей, считая каждый столько раз, в какой степени он входит исходное число, таким образом, в частном от деления на простое будет или степень простого с показателем больше 1, или произведение как минимум двух простых. Но такие степени простыми не являются, так как делятся на основание, на 1 и на себя, итого имеет 3 делителя, простым не являясь.
Но в обоих случаях само исходное число может быть натуральным.

Добавлено через 11 минут
Цитата Сообщение от White_volf Посмотреть сообщение
ну то есть разложить число на суммы двух простых чисел.
нет не один... по заданию.
например: 6 раскладывается в строку: 1 5, 5 1, 3 3
На суммы? Ты серьёзно? И потом, возьмём, например, 17. Какие суммы возможны?
1+16. 16 имеет 5 делителей: 1, 2, 4, 8 и 16, не простое. 1 делится только на себя не простое.
2+15. 15 имеет 4 делителя: 1, 3, 5 и 15, не простое.
3+14. 14 имеет 4 делителя: 1, 2, 7 и 14, не простое.
4+13. 4 имеет 3 делителя: 1, 2 и 4, не простое.
5+12. 12 имеет 5 делителей: 1, 2, 3, 4 и 12, не простое.
6+11. 6 имеет 6 делителя: 1, 2, 3 и 6, не простое.
7+10. 10 имеет 4 делителя: 1, 2, 5 и 10, не простое.
8+9. 8 имеет 4 делителя: 1, 2, 4 и 8, не простое. 9 имеет 3 делителя: 1, 3, и 9, не простое.
9+8. 8 имеет 4 делителя: 1, 2, 4 и 8, не простое. 9 имеет 3 делителя: 1, 3, и 9, не простое.
10+7. 10 имеет 4 делителя: 1, 2, 5 и 10, не простое.
11+6. 6 имеет 6 делителя: 1, 2, 3 и 6, не простое.
12+5. 12 имеет 5 делителей: 1, 2, 3, 4 и 12, не простое.
13+4. 4 имеет 3 делителя: 1, 2 и 4, не простое.
14+3. 14 имеет 4 делителя: 1, 2, 7 и 14, не простое.
15+2. 15 имеет 4 делителя: 1, 3, 5 и 15, не простое.
16+1. 16 имеет 5 делителей: 1, 2, 4, 8 и 16, не простое. 1 делится только на себя не простое.
Ни в одной сумме нет двух простых.
0
4 / 4 / 0
Регистрация: 13.12.2012
Сообщений: 20
13.12.2012, 14:09  [ТС]
такое задание
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2012, 14:09
Помогаю со студенческими работами здесь

Разложение натурального числа на слагаемые
Я не силен в математике, но математику надоело вести математические методы и он начал давать задачки по созданию программ, все бы ничего,...

Разложение натурального числа на множители
Здравствуйте. Условие: Найти все варианты разложения данного натурального числа на множители с помощью рекурсивной функции. ...

Разложение натурального положительного числа на слагаемые?
Помогите... Нужно разложить число на слагаемые... Причем, условия такие: слагаемые должны быть в диапазоне от 1 до 10 (соответственно...

Разложение натурального числа на простые множители
Выведите разложение натурального числа n &gt; 1 на простые множители. Простые множители должны быть упорядочены по возрастанию и разделены...

Разложение на простые множители заданного натурального числа
Составить программу , печатающую разложение на простые мн0жители заданн0го натУральн0го числа n &gt; 0 (другими словами требуется печатать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru