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

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

Войти
Регистрация
Восстановить пароль
 
C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
#1

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

27.11.2012, 17:17. Просмотров 507. Ответов 9
Метки нет (Все метки)

Подскажите, как целое число представить в виде массива его простых множителей?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 17:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Число в виде массива множителей (C++):

Представить натуральное число в виде произведения простых множителей - C++
3. Представление натурального числа в виде произведения простых множителей.

Число как сумма квадратов его множителей - C++
определить можно ли введенное число представить как сумму квадратов его множителей. Простите если данная тема уже была. Добавлено...

Найти наименьшее натуральное число, непредставимое в виде суммы элементов массива Р - C++
Дан массив P, содержащий N натуральных чисел. Найти наименьшее натуральное число, непредставимое в виде суммы элементов массива Р

Отобразить минимальное положительное число, которое невозможно представить в виде суммы элементов массива - C++
Отобразить то минимальное положительное число, которое невозможно представить в виде суммы элементов массива. Количество действий O(n^2). ...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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;
        
}
1
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");
}
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.11.2012, 17:56 #4
C/man у тебя неправильно считает.
0
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");
}
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.11.2012, 18:09 #6
C/man ты не подумай, что я придираюсь, но второй код то же неверный.
0
C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 18:14  [ТС] #7
Цитата Сообщение от David Sylva Посмотреть сообщение
C/man ты не подумай, что я придираюсь, но второй код то же неверный.
как переделать этот код, чтобы работала верно? только начинаю изучать язык по сути
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
27.11.2012, 18:16 #8
Я тебе предложил свой вариант.
0
C/man
3 / 3 / 0
Регистрация: 29.05.2012
Сообщений: 44
27.11.2012, 18:18  [ТС] #9
тогда как в твоем варианте сделать массив динамическим, с большими числами 10 ячеек будет мало
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
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;
        
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2012, 18:23
Привет! Вот еще темы с ответами:

Вернуть все четные числа массива в виде нового массива - C++
Функция должна вернуть все четные числа массива в виде нового массива. int *f2 (int *mas,int N) { int size=0; for(int i=0;...

Найти столбец массива с наибольшей суммой элементов и записатьегох в виде одномерного массива - C++
1 Для произвольного двумерного массива найти столбец с наибольшей суммой элементов и записать их в виде одномерного массива.

Удалить из массива A[N] вс отрицательные элементы.Удаление отрицательных элементов массива оформить в виде функции - C++
Что исправить? #include &lt;stdio.h&gt; #define N 10 int udalenie(int A,int k ) { int i; for(i=k;i&lt;N;i++)

Простой список в виде массива.Как работать с элементами списка-массива через единую функцию - C++
Добрый день!Подсобите,как реализовать Простой список,но не через шаблоны или создание указателей,а как бы в виде массива.(Ну,или ваш...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.11.2012, 18:23
Ответ Создать тему
Опции темы

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