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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.95
lastProg
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 22
#1

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

17.11.2012, 03:40. Просмотров 5511. Ответов 3
Метки нет (Все метки)

Мне нужно разбить целое число на простые множители, этот алгоритм должен быть обязательно рекурсивным.. Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2012, 03:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разбить целое число на простые множители с помощью рекурсивного алгоритма (C++):

Разбить число на множители и определить простые они или нет - C++
Нужна помощь народ! Надо написать код чтобы работал по такому принципу: разбить число на множители и определить простые они или нет, если...

Разложить число на простые множители - C++
Если не трудно, можете найти где у меня ошибка, а то я новичок, никак не могу справится с этой задачкой: #include <iostream> using...

Разложить число на простые множители - C++
Дано натуральное число n. Напечатать разложение этого числа на простые множители. Реализовать два варианта: 1) каждый простой множитель...

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

Разложить число на простые множители - C++
Я для этого написал программу : #include <stdio.h> #define MAXN 1000 int main(){ freopen("input.txt","r",stdin); ...

Разложить натуральное число на простые множители - C++
Разложить натуральное число на простые множители.(Нужно максимально простое решение, для новичков)

3
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.11.2012, 08:23 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
void rec(int a, int b)
{
    if(a==1)
        return;
    for(;;b++)
        if(a%b==0)
        {
            cout<<b<<endl;
            rec(a/b, b);
            return;
        }
}
int main()
{
    int a;
    cin>>a;
    rec(a, 2);   
   return 0;
}
2
lastProg
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 22
17.11.2012, 14:57  [ТС] #3
Спасибо огромное, но не могу бы ты прокоментировать некоторые строки, я не совсем понимаю ихний смысл: 3, 6, 7, 11, 12, 19;
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
18.11.2012, 01:18 #4
Цитата Сообщение от lastProg Посмотреть сообщение
но не могу бы ты прокоментировать некоторые строки, я не совсем понимаю ихний смысл: 3, 6, 7, 11, 12, 19;
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
void rec(int a, int b)// рекурсивная функция называется rec. В параметрах функции передается 2 целых числа
{
    if(a==1)// если число a равно 1 (число a, которое передали в параметрах функции)
        return;// то возвращаемся туда, откуда вызывали рек. функцию
    for(;;b++)// продолжаем цикл, увеличивая значение b (цикл продолжается бесконечно)
        if(a%b==0)// если нашли число b которое без остатка делится на a
        {
            cout<<b<<endl;
            rec(a/b, b);// вызываем рек. функцию (в параметрах ей передаем a/b и b)
            return;// после того как программа отработает вызов рек. функции из предыдущей строки возвращаемся сюда. Здесь программа отрабатывает оператор return (возвращается в точку откуда была вызвана эта рек. функция)
        }
}
int main()
{
    int a;
    cin>>a;
    rec(a, 2);// вызываем рек. функцию (в параметрах передаем число введенное пользователем и число 2, первое простое число) 
   return 0;
}
1
18.11.2012, 01:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2012, 01:18
Привет! Вот еще темы с ответами:

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

Как можно разбить длинное число на множители? - C++
есть число 217381274817248719824812648612; как программно его разбить на большие множители?

Разложить число на простые множители через массив - C++
разложить сложное число на простые множители, через массив.

Дано натуральное число N. Разложить его на простые множители - C++
Всем доброго времени суток. Очень нужна помощь с данной задачей в плане оформления, так как совсем не знаю этот язык программирования. Дано...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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