0 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 12
1

Найти в последовательности натуральных чисел все пары чисел дающие в произведении полный куб

25.12.2018, 17:56. Показов 822. Ответов 1
Метки нет (Все метки)

Напишите эффективную по времени программу, находящую в последовательности натуральных чисел не превосходящих 50 все пары чисел, дающие в произведении полный куб. Последовательность чисел завершается нулем.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2018, 17:56
Ответы с готовыми решениями:

Циклы. Среди натуральных чисел от 1 до 100 найти все пары чисел, для которых их сумма равна их произведению и кол-во таких пар.
Среди натуральных чисел от 1 до 100 найти все пары чисел, для которых их сумма равна их...

Найти все пары натуральных чисел
Найти все пары натуральных чисел (p, q), которые удовлетворяют равенству: (p+1)^(p-1) + (p-1)^(p+1)...

Найти все пары натуральных дружественных чисел
Числовая дружба Составьте программу для решения задачи. Два натуральных числа называются...

Найти все пары двухзначных натуральных чисел М, N
Найти все пары двухзначных натуральных чисел М, N таких, что значение произведения М*N не...

1
2479 / 1906 / 951
Регистрация: 21.12.2010
Сообщений: 3,473
Записей в блоге: 10
25.12.2018, 19: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
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
#include <iostream>
#include <iomanip>
#include <utility>
#include <random>
#include <unordered_set>
#include <vector>
#include <chrono>
 
 
// протестировано в MSVS2017
int main()
{
    std::vector<short> vnum; // последовательность натуральных чисел не превосходящих 50
    int const cnum = 20000; // количество чисел последовательности
    vnum.reserve(cnum); 
    std::mt19937 eng{ std::random_device{}() };
    std::uniform_int_distribution<> dst{1, 50};
    for (int i = 0; i < cnum; ++i) // заполнение последовательности случайными числами
    {
        vnum.emplace_back(dst(eng));
    }
 
    auto tp1 = std::chrono::high_resolution_clock::now();
 
    std::unordered_set<short> ust;
    for (short i = 1, cub = 0; (cub = i * i * i) <= 2500; ++i)
    {
        ust.emplace(cub);
    }
 
    std::vector<std::pair<short, short>> vpr; // вектор пар
    vpr.reserve(cnum * 200);
    for (int i = 0; i < vnum.size() - 1; ++i)
    {
        for (int j = i + 1; j < vnum.size(); ++j)
        {
            short prod = vnum[i] * vnum[j];
            if (ust.find(prod) != ust.end())
            {
                vpr.emplace_back(vnum[i], vnum[j]);
            }
        }
    }
    auto tp2 = std::chrono::high_resolution_clock::now();
    std::cout << "dur: " << std::chrono::duration<double, std::milli>{tp2 - tp1}.count() << std::endl; // время работы программы
    std::cout << "vpr.size(): " << vpr.size() << std::endl; // кол-во найденных пар
 
    //for (auto const& pr : vpr) // вывод найденных пар
    {
        //std::cout << std::setw(4) << std::left << pr.first << pr.second << std::endl;
    }
 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2018, 19:51
Помогаю со студенческими работами здесь

Найти все пары двухзначных натуральных чисел М, N
Найти все пары двухзначных натуральных чисел М, N таких, что значение произведения М * N не...

Найти все пары дружественных натуральных чисел из интервала от N 1 до N 2.
Очень нужна помощь!) Помогите пожалуйста) в С++, visual studio учусь на первом курсе мех-мата: ...

Найти все пары натуральных чисел, частное которых = X
Найти все пары натуральных чисел, частное которых = X.

Найти все пары натуральных чисел, удовлетворяющих равенству
Найти все пары натуральных k и l, удовлетворяющих равенству k*l=k+l+c где C данное натуралносе число


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru