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

Выведите все простые множители этого числа в порядке неубывания с учетом кратности (рекурсия) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выход из вложенного цикла http://www.cyberforum.ru/cpp-beginners/thread1127023.html
Собственно как выходить из вложенного цикла ? goto ?
C++ Проверьте блок схему на предмет ошибок Вот есть блок схема необходимо ее проверить, программу написал работает нормально. Очень буду признателен за указания на ошибки http://www.cyberforum.ru/cpp-beginners/thread1127009.html
Найти самое длинное слово, которое заканчивается на «н» C++
Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо: 1)найти самое длинное слово, которое заканчивается на «н» 2)исключить эти слова из строки 3)вывести результат ...
Используя механизм перегрузки функций, разработайте две версии функции F C++
Используя механизм перегрузки функций, разработайте две версии функции F, заголовки которых выглядят следующим образом: 1) float F(float х); 2) void F (float x, float &y);...
C++ Сравнение строк http://www.cyberforum.ru/cpp-beginners/thread1126972.html
Добрый вечер. Пользователь должен ввести слово которое находиться в инструкции if и ему должно показать что ответ верный. Но почему то всегда пишет что не верно. Вот код #include <iostream>...
C++ Подсчитать сумму элементов, расположенных на побочной диагонали Использование функций-шаблонов: для работы с двумерными массивами арифметических типов данных разработать шаблоны ввода и вывода массива, а также шаблон для решения основной задачи: Подсчитать... подробнее

Показать сообщение отдельно
kiborgdelto
71 / 73 / 27
Регистрация: 23.03.2011
Сообщений: 141
29.03.2014, 23:03
могу предложить только такой вариант, цикл используется только при считывании простых чисел в массив, для последующего поиска разложения на простые числа
C++
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
#include <iomanip> 
#include<locale>
#include <fstream>
using namespace std;
 
int prost_chisl(int* chisl, int n);
int prost_del(int *chisl,int n1, int k1);
 
void main (void) 
 {
    setlocale(LC_ALL,"Rus");
    int n,k; 
   cout<<"Введите число\n";
   cin>>n;
   int *chisl= new int [n];
   k=prost_chisl(chisl, n);
   cout<<"Разложение на простые множители:\n";
   prost_del(chisl,n,0);
    cin.get();
    cin.get();
    delete [] chisl;
 }
 
int prost_chisl(int* chisl, int n)
   {
       
       ifstream fp ("C:\\числа.txt");
       if ( ! fp ) 
       {
            cout << "ошибка: не могу открыть входной файл " << endl;
            system("pause");
            exit(0);
        }
 
       int i=0,k=0;
       do
       {
       fp >>chisl[i];
       i++;
       }
        while(n>chisl[i-1]);
        k=i-1;
       fp.close();
       return k;
   }
 
int prost_del(int *chisl,int n1, int k1)
{
    if(n1%chisl[k1]==0||n1==1)
    {
        cout<<chisl[k1]<<endl;
        n1=n1/chisl[k1];
        k1=0;
        if(n1==1) return 0;
        prost_del(chisl,n1, k1);
    }
    else prost_del(chisl,n1, k1+1);
}
могу конечно и без считыания (и цикла естественно) попробовать сделать, но тогда сложность программы повысится значительно (нужно будет искать простые числа вручную)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru