Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
White_volf
4 / 4 / 0
Регистрация: 13.12.2012
Сообщений: 20
#1

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

13.12.2012, 08:15. Просмотров 610. Ответов 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 секунды
не могу понять, что дальше
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 08:15     Разложение натурального числа на два простых
Посмотрите здесь:

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

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

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

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

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

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

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

Описать функцию, находящую разложение заданного натурального числа на простые множители - C++
Помогите написать программу, пожалуйста Описать функцию factors(a, n, F), находящую разложение натурального числа a на простые множители....

Найти разложение натурального числа на сумму квадратов трёх целых чисел - C++
Для заданного натурального N (0 &lt; N ≤ 10^9) вычислить число троек целых чисел (x, y, z), таких, что x^2 + y^2 + z^2 = N. Помогите...

Сформировать массив простых чисел не больших заданного натурального числа N - C++
Сформировать массив простых чисел не больших заданного натурального числа N.

Сформировать массив простых чисел не больших заданного натурального числа N. - C++
Сформировать массив простых чисел не больших заданного натурального числа N.

Среди простых чисел , не превосходящих заданного натурального числа N .Найти такие, в десятичном представление которых больше всего нулей - C++
Ребята помогите!!!!!!!!!!!!!! плс


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

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

Цитата Сообщение от White_volf Посмотреть сообщение
всеми возможными способами
Что?? А ничего, что количество способов всегда равно единице?
White_volf
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 секунды
в чём ошибка?
как исправить?
SatanaXIII
Супер-модератор
Эксперт С++
5594 / 2628 / 240
Регистрация: 01.11.2011
Сообщений: 6,463
Завершенные тесты: 1
13.12.2012, 09:18     Разложение натурального числа на два простых #4
C++
1
m=sqrt(a)
Объяви a не как int, а как double. Функция sqrt принимает значения только дабловского типа.
Ну или как вариант:
C++
1
m=sqrt((double)a)
И перепиши код под правильное форматирование. Все глаза сломаешь.
Где-то со скобочками косяк и с именами переменных.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
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 делится только на себя не простое.
Ни в одной сумме нет двух простых.
White_volf
4 / 4 / 0
Регистрация: 13.12.2012
Сообщений: 20
13.12.2012, 14:09  [ТС]     Разложение натурального числа на два простых #6
такое задание
Yandex
Объявления
13.12.2012, 14:09     Разложение натурального числа на два простых
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru