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

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

Войти
Регистрация
Восстановить пароль
 
Realmucho
0 / 0 / 0
Регистрация: 04.08.2016
Сообщений: 79
#1

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

15.08.2016, 21:40. Просмотров 371. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти числа из заданной последовательности, которые делятся на все числа из другой последовательности (C++):

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

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

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

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

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

Найти в заданном интервале все числа, которые делятся на 13 - C++
Помогите пожалуйста, как найти цифры, которые деляться на 13, при этом они должны быть между двух вводимых чисел - a,b; когда сам написал,...

4
0x90h
307 / 273 / 99
Регистрация: 01.10.2015
Сообщений: 838
15.08.2016, 21:46 #2
Realmucho, задам вам риторический вопрос: вы хотя бы пытались самостоятельно решить эти задачи? Или для вас форум — это некий "черный ящик", на вход — задачу, на выходе забираете готовое решение. Вы упорно выкладываете типовые задачи, а на форуме, между прочим, поиск есть...
0
Mr.X
Эксперт С++
3052 / 1697 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
15.08.2016, 22:14 #3
Что-то примеры как-то не стыкуются с текстом задачи.
0
dvano
133 / 64 / 16
Регистрация: 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
Привет! Вот еще темы с ответами:

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

Определить среднее арифметическое тех чисел заданной последовательности, которые больше некоторого числа n - C++
Даны натуральное число 'x' и целые числа 'a1,a2, ..., ax'. Определить среднее арифметическое тех чисел ai, которые больше некоторого числа...

Вывести все числа до заданного числа, которые делятся на каждую свою цифру. - C++
Нужно написать программу по выводу всех чисел до заданного n, которые делятся на каждую свою цифру. #include &lt;iostream&gt; using...

Вывести все целые числа, на которые оба введенных числа делятся без остатка - C++
Пользователь вводит два целых числа. Необходимо вывести все целые числа, на которые оба введенных числа делятся без остатка. вот код...


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

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

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