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

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

Войти
Регистрация
Восстановить пароль
 
 
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
#1

Нужно найти числа которые являются произведением K различных простых множителей , k<7 - C++

04.12.2016, 17:27. Просмотров 253. Ответов 15
Метки нет (Все метки)

Помогите пожалуйста решить задачу:Нужно найти числа которые являются произведением K различных простых множителей , k<7 .Или хотя бы подскажите как упростить эту задачу,чтобы решить задачу?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2016, 17:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно найти числа которые являются произведением K различных простых множителей , k<7 (C++):

Выбираются те числа,которые являются произведением k различных простых множителей , k<7 - C++
n-натуральное число, выбираются те числа,которые являются произведением k различных простых множителей,k&lt;7.Найти первых таких,s&lt;15/ ...

Найти в массиве числа, которые являются квадратами простых - C++
Написать программу в которой создается массив из любых чисел, а потом выводятся те числа которые являются квадратами простых

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

Найти числа, которые являются квадратами некоторого другого числа - C++
Помогите написать программу на С++ Вот условие: Даны целые положительные числа а1, а2 ..., а n. Найти среди них те, которые являются...

Найти в последовательности числа, которые являются квадратом числа m - C++
Даны целые положительные числа . Найти среди них те, которые являются квадратами некоторого числа m. помогите решить на &quot;С&quot; ...

Даны целые положительные числа аь а2,., а„. Найти среди них те, которые являются квадратами некоторого числа т - C++
Упорядочить по возрастанию элементы каждой строки мат рицы размером пхт. Дана строка. Подсчитать количество букв к в последнем ее...

15
MAlorik123
2 / 2 / 0
Регистрация: 23.10.2012
Сообщений: 29
04.12.2016, 17:35 #2
строишь массив простых чисел,после чего задаешь условие
0
cordfield
44 / 44 / 15
Регистрация: 04.05.2014
Сообщений: 184
04.12.2016, 17:39 #3
Сначала нужно найти простые числа в количестве n штук. Скажем, записать их в массив.
Потом перебрать различные сочетания, выбирая по k элементов из n, причём так, чтобы выбранные элементы не повторялись.
Число сочетаний, которое можно будет получить при разных n и k вычисляется по формуле:
http://www.cyberforum.ru/cgi-bin/latex.cgi?C_n^k = \frac{n!}{k!\left(n-k\right)!}
0
Fixer_84
634 / 440 / 219
Регистрация: 30.04.2016
Сообщений: 1,270
04.12.2016, 17:49 #4
Valuamba, чтобы было понятней, привожу небольшой пример программы для строки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main()
{
    string s;
    cout << "Введите строку(все символы разные):" << endl;
    getline(cin, s);
    cout << "Всевозможные сочетания:" << endl;
    do
    {
    cout << s << endl;
    }
    while (next_permutation(s.begin(), s.end()));
    system("pause");
    return 0;
}
0
amaralikyr
61 / 61 / 23
Регистрация: 18.09.2015
Сообщений: 200
Завершенные тесты: 1
04.12.2016, 17:57 #5
Не понимаю смысла задачи, то есть к примеру дано число 124 и нужно найти его множители К, К<7
типа: 2 * 2 * 31...?
0
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
04.12.2016, 18:08  [ТС] #6
дано число допустим 15 ,вводим из скольки множителей оно должно будет состоять,например: k=2, число 15 может состоять из 3*5 и 1*15,но нам нужны простые множители,а так как 1 не является простым числом,тогда верное равенство 3*5.И нужно найти такие числа, которые состоят из заданного кол-ва простых множителей
0
Fixer_84
634 / 440 / 219
Регистрация: 30.04.2016
Сообщений: 1,270
04.12.2016, 18:16 #7
Valuamba, давайте, для начала, получим простые сомножители. Я напишу программу и если все хорошо, мы продолжим строить решение. Хорошо?
0
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
04.12.2016, 18:28  [ТС] #8
Да,вот я написал программу,которая находит простые множители:
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
int main()
{
   setlocale(LC_ALL,"Russian");
   int chisl,n;
 
const int k=10000;
int A[k];
int C[k];
int chs=0;
 for(int i=1;i<k;i++)
 {
     int ch=0;
 
     for(int z=2;z<=i;z++)
      if(i % z==0)
        ch++;
      if(ch==1)
        {
            if(i<=1000)
               {
           chs++;
        C[chs]=i;
               }
        }
 
 }
for(int j=1;j<chs;j++)
 cout<<"простые числа: "<<C[j]<<endl;
   _getch();
   return 0;
}
И,пожаолуйста,если собираетесь написать код,напишите просто,без функций,классов и т.д,с и спользованием циклов и массивов
0
Fixer_84
634 / 440 / 219
Регистрация: 30.04.2016
Сообщений: 1,270
04.12.2016, 18:32 #9
Valuamba, пока мысли такие. Прокомментируйте это, пожалуйста.

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
#include <iostream>
#include <cmath>
 
bool IsPrime(int N)
{ 
for (int i = 2; i <= sqrt(N); i++)
if (N % i == 0) return false;
if (N == 1) return false;
return true;
}
 
using namespace std;
 
int main()
{
    int N;
    cin >> N;
    for (int i = 1; i <= N; i++)
    {
    if ((IsPrime(i)) && (N % i == 0))
    cout << i << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 3 минуты
Valuamba, вывод такой: не каждое число можно представить в виде произведения k различных простых сомножителей. Например, для числа 20 моя программа выдаст только числа 2 и 5...
0
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
04.12.2016, 18:34  [ТС] #10
Уффффф функции,я пока их еще не вспомнил их.У меня проблема как перебирать множители от 1 до 7 как сделать такой цикл,я вчера пробовал эксперементировать с степенями там вроде все просто.
Цитата Сообщение от Valuamba Посмотреть сообщение
И,пожаолуйста,если собираетесь написать код,напишите просто,без функций,классов и т.д,с и спользованием циклов и массивов
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3945 / 2169 / 553
Регистрация: 18.10.2014
Сообщений: 3,783
04.12.2016, 19:09 #11
Цитата Сообщение от Valuamba Посмотреть сообщение
найти числа которые являются произведением K различных простых множителей , k<7
Какая-то белиберда. Чисел, являющихся произведением K различных простых множителей, бесконечено много. Что значит "найти числа"?
0
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
04.12.2016, 19:49  [ТС] #12
Например:
1.введите число:105
2.введите количество множителей:3
Вывод:число 105 подходит(5*3*7)
Можно самому вводить число,а можно искать их на промежутке каком—то.Мне самое главное это узнать алгоритм как перебирать множители
0
Fixer_84
634 / 440 / 219
Регистрация: 30.04.2016
Сообщений: 1,270
04.12.2016, 21:03 #13
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Valuamba, может быть, это то, что вам нужно:

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
#include <iostream>
#include <cmath>
#include <vector>
 
bool IsPrime(int N)
{
    for (int i = 2; i <= sqrt(N); i++)
        if (N % i == 0)
            return false;
    if (N == 1)
        return false;
    return true;
}
 
using namespace std;
 
int main()
{
    int N, p;
    vector<int> x;
    cout << "Введите число:" << endl;
    cin >> N;
    cout << "Введите количество множителей:" << endl;
    cin >> p;
    for (int i = 1; i <= N; i++)
    {
        if ((IsPrime(i)) && (N % i == 0))
            x.push_back(i);
    }
    if (p == x.size())
    {
        cout << "Для данного числа найдены множители!" << endl;
        for (int i = 0; i < p; i++)
        {
            cout << x[i] << " ";
        }
    }
    else cout << "Это число не разложить на заданное количество множителей!" << endl;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Valuamba, предполагается, что множители являются простыми числами и различны.
1
Valuamba
3 / 3 / 2
Регистрация: 03.11.2015
Сообщений: 77
04.12.2016, 21:25  [ТС] #14
Цитата Сообщение от Fixer_84 Посмотреть сообщение
bool IsPrime(int N)
{
* * for (int i = 2; i <= sqrt(N); i++)
* * * * if (N % i == 0)
* * * * * * return false;
* * if (N == 1)
* * * * return false;
* * return true;
}
Скажите пожалуйста что делает эта функция?

Добавлено через 40 секунд
Цитата Сообщение от Fixer_84 Посмотреть сообщение
x.push_back(i);
и вот эта строка?
Спастбо,ваша программа делает все то что я и хотел,но можно это сделать буз функций при помощи циклов и массивов,или мне пока рановато решать такие задачи?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3945 / 2169 / 553
Регистрация: 18.10.2014
Сообщений: 3,783
04.12.2016, 21:33 #15
Цитата Сообщение от Valuamba Посмотреть сообщение
Можно самому вводить число,а можно искать их на промежутке каком—то.Мне самое главное это узнать алгоритм как перебирать множители
Задача уже решалась здесь

Как представить натуральное число в виде произведения двух простых чисел
1
04.12.2016, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2016, 21:33
Привет! Вот еще темы с ответами:

нужно написать программу, находящую количество чисел меньших x, которые делятся в точности на три простых числа. - C++
Мне нужно написать программу, находящую количество чисел меньших x, которые делятся в точности на три простых числа. Кто-нибудь может...

Найти среди чисел те, которые являются квадратами некоторого числа n - C++
даны целые положительные числа а1,а2,...,an. Найти среди них те, которые являются квадратами некоторого числа n.

Найти все цифры числа, которые являются его делителями - C++
Пожалуйсто помогите с заданием. Я даже незнаю с чего начать... Задание: 1) задаем натуральное число с клавиатуры 2) сканирование...

Найти Среди чисел те, которые являются квадратами некоторого числа т - C++
Даны целые положительные числа А1, А2,..., Аn. Найти Среди них те, которые являются квадратами некоторого числа т.


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

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

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