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

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

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

Author24 — интернет-сервис помощи студентам
Помогите написать программу...
нужно разложить натуральное число на два простых всеми возможными способами.
вот мои наработки:
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2012, 08:15
Ответы с готовыми решениями:

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

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

Разложение Натурального числа
Привет.Помогите пожалуйста решить задачу. Разложить натуральное число на простые множители...

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

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

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

нет не один... по заданию.
например: 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
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
13.12.2012, 09:18 4
C++
1
m=sqrt(a)
Объяви a не как int, а как double. Функция sqrt принимает значения только дабловского типа.
Ну или как вариант:
C++
1
m=sqrt((double)a)
И перепиши код под правильное форматирование. Все глаза сломаешь.
Где-то со скобочками косяк и с именами переменных.
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
13.12.2012, 09:35 5
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  [ТС] 6
такое задание
0
13.12.2012, 14:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2012, 14:09
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru