Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
1

Найти числа из заданной последовательности, которые делятся на все числа из другой последовательности

15.08.2016, 21:40. Просмотров 530. Ответов 4
Метки нет (Все метки)

Вход программы имеет следующий формат. Сначала вводится N > 0- количество чисел в последовательности А. Далее идут N целых чисел. После этого следует число M > 0 - количество чисел в последовательности В. Далее следуют M целых положительных числа. Требуется найти и напечатать те числа из последовательности А, которые делятся на все числа из последовательности B. Сначала вывести количество таких чисел, а на следующей строчке сами эти числа, разделенные пробелом (можно и в конце пробел ставить).

Требование. Посчитайте НОК чисел второй последовательности. Напишите функции int gcd(int a, int b) и int lcm(int a, int b). Можете также написать функцию int lcm(const std::vector<int> & numbers), которая считает НОК всей последовательности. Да, в C++ несколько функций могут иметь одно и то же название, если у них разные количество или типы аргументов.

1)
Ввод
5
100 200 150 0 -25
4
5 50 25 20

Вывод

3
100 200 0


2)
Вход
6
1 2 3 4 5 6
2
2 3


Вывод

1
6
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2016, 21:40
Ответы с готовыми решениями:

В последовательности найти числа, которые близки к числам другой последовательности
даны две последовательности чисел A = {a1, a2,…, an}, B = {b1, b2, …,...

Найти в последовательности числа, которые делятся на свою последнюю цифру
Помогите пожалуйста!!!!задача на С++ Дана последовательность.Длина...

Найти в последовательности числа, которые являются квадратом числа m
Даны целые положительные числа . Найти среди них те, которые являются...

Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7 (ошибка в коде)
Даны натуральные числа An А2, ... Признак конца последовательности 0....

Найти номер наименьшего положительного числа в заданной последовательности. Если в ней отсутствуют положительные числа, ответом должно быть -1
Условие: Дано натуральное число n (n &lt; 100) и действительные числа 1a, 2a,...

4
0x90h
325 / 291 / 109
Регистрация: 01.10.2015
Сообщений: 884
15.08.2016, 21:46 2
Realmucho, задам вам риторический вопрос: вы хотя бы пытались самостоятельно решить эти задачи? Или для вас форум — это некий "черный ящик", на вход — задачу, на выходе забираете готовое решение. Вы упорно выкладываете типовые задачи, а на форуме, между прочим, поиск есть...
0
Mr.X
Эксперт С++
3180 / 1707 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
15.08.2016, 22:14 3
Что-то примеры как-то не стыкуются с текстом задачи.
0
dvano
134 / 65 / 27
Регистрация: 18.06.2014
Сообщений: 216
Завершенные тесты: 1
15.08.2016, 22:36 4
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
template<typename T>
constexpr int gcd(T a, T b) noexcept {return b ? gcd(b, a % b) : a;}
template<typename T>
constexpr int lcm(T a, T b) noexcept {return a * b / gcd(a, b);}
 
template<typename Iterator>
decltype(auto) lcm_range(Iterator first, Iterator last)
{
    return std::accumulate(first, last, static_cast<typename Iterator::value_type>(1),
            lcm<typename Iterator::value_type>);
}
 
int main()
{
    std::vector<int>::size_type N;
    std::cin >> N;
 
    std::vector<int> a_numbers(N);
    std::copy_n(std::istream_iterator<int>{std::cin}, N, a_numbers.begin());
 
    std::vector<unsigned>::size_type M;
    std::cin >> M;
 
    std::vector<unsigned> b_numbers(M);
    std::copy_n(std::istream_iterator<unsigned>{std::cin}, M, b_numbers.begin());
 
    const auto b_numbers_lcm = lcm_range(b_numbers.cbegin(), b_numbers.cend());
 
    std::vector<int> found_numbers;
    std::copy_if(a_numbers.cbegin(), a_numbers.cend(), std::back_inserter(found_numbers),
            [b_numbers_lcm](auto v){return v % b_numbers_lcm == 0;});
 
    std::cout << found_numbers.size() << std::endl;
    std::copy(found_numbers.cbegin(), found_numbers.cend(), std::ostream_iterator<int>{std::cout, " "});
 
    return 0;
}
1
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
16.08.2016, 21:43  [ТС] 5
Цитата Сообщение от dvano Посмотреть сообщение
#include <iterator>
а вместо итератора что можно использовать ????
0
16.08.2016, 21:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2016, 21:43

Упорядочить все числа заданной последовательности по возрастанию
Пусть для целого n&gt;0 функция d(n) равна количеству делителей числа n. Дано...

Найти в заданном интервале все числа, которые делятся на 13
Помогите пожалуйста, как найти цифры, которые деляться на 13, при этом они...

Рекурсия: вывести сначала все положительные числа заданной последовательности, а потом все отрицательные
Задание написать на Си С клавиатуры вводится непустая последовательность...


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

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

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