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

Число в виде массива множителей - C++

Восстановить пароль Регистрация
 
C/man
 Аватар для C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 17:17     Число в виде массива множителей #1
Подскажите, как целое число представить в виде массива его простых множителей?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 17:17     Число в виде массива множителей
Посмотрите здесь:

C++ Простой список в виде массива.Как работать с элементами списка-массива через единую функцию
C++ Число как сумма квадратов его множителей
динамический массив (Целое число разложить на массив простых множителей) C++
C++ Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива
Создать программу, которая позволяет ввести целое число n и вывести это число в виде произведения простых чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 17:51     Число в виде массива множителей #2
Такой вариант
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
#include <iostream>
using namespace std;
 
int main() 
{ 
    int number = 420;  
    int x = 2; 
    int array[10]; 
    int count = 0;
    
    if(number == 1) 
        std::cout << 1 << std::endl; 
    else 
        while(number!=1)  
            if( number % x == 0)  
            {
                number /= x; 
                array[count++] = x; 
            }
            else 
                ++x;   
 
    for ( int i = 0; i < count; ++i) 
        std::cout << array[i] << " "; 
    std::cout << std::endl;
        
}
C/man
 Аватар для C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 17:53  [ТС]     Число в виде массива множителей #3
спасибо, сам уже написал, думал совсем никто не ответит)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
main()
{
    
    int m,i,val=22;
    int *mas=new int [3];
    for (i=0; i<(sizeof(mas)-1) && val !=1; i++)
    {
        for (m=2; val % m !=0; m++);
        val /= m; mas[i] = m;
        std::cout << mas[i] << " ";
    }
    system("pause");
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 17:56     Число в виде массива множителей #4
C/man у тебя неправильно считает.
C/man
 Аватар для C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 18:02  [ТС]     Число в виде массива множителей #5
да)
проверил другое число, улыбнуло)

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
main()
{
    
    int m,i,val=444;
    int *mas=new int[val];
    for (i=0; i<val-1 && val !=1; i++)
    {
        for (m=2; val % m !=0; m++);
        val /= m; mas[i] = m;
        std::cout << mas[i] << " ";
    }
    system("pause");
}
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 18:09     Число в виде массива множителей #6
C/man ты не подумай, что я придираюсь, но второй код то же неверный.
C/man
 Аватар для C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 18:14  [ТС]     Число в виде массива множителей #7
Цитата Сообщение от David Sylva Посмотреть сообщение
C/man ты не подумай, что я придираюсь, но второй код то же неверный.
как переделать этот код, чтобы работала верно? только начинаю изучать язык по сути
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 18:16     Число в виде массива множителей #8
Я тебе предложил свой вариант.
C/man
 Аватар для C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 18:18  [ТС]     Число в виде массива множителей #9
тогда как в твоем варианте сделать массив динамическим, с большими числами 10 ячеек будет мало
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 18:23     Число в виде массива множителей
Еще ссылки по теме:

C++ Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции
Вернуть все четные числа массива в виде нового массива C++
C++ Представить натуральное число в виде произведения простых множителей

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

Или воспользуйтесь поиском по форуму:
David Sylva
 Аватар для David Sylva
1281 / 943 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
27.11.2012, 18:23     Число в виде массива множителей #10
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
#include <iostream>
using namespace std;
 
int main() 
{ 
    int number = 420;  
    int x = 2; 
    int* array = new int[1000];
    int count = 0;
    
    if(number == 1) 
        std::cout << 1 << std::endl; 
    else 
        while(number!=1)  
            if( number % x == 0)  
            {
                number /= x; 
                array[count++] = x; 
            }
            else 
                ++x;   
 
    for ( int i = 0; i < count; ++i) 
        std::cout << array[i] << " "; 
    std::cout << std::endl;
        
}
Yandex
Объявления
27.11.2012, 18:23     Число в виде массива множителей
Ответ Создать тему
Опции темы

Текущее время: 16:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru