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

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

15.08.2016, 21:40. Просмотров 494. Ответов 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
http://www.cyberforum.ru/cpp-beginners/thread1586240.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2016, 21:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти числа из заданной последовательности, которые делятся на все числа из другой последовательности (C++):

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

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

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

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

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

4
0x90h
321 / 287 / 108
Регистрация: 01.10.2015
Сообщений: 862
15.08.2016, 21:46 #2
Realmucho, задам вам риторический вопрос: вы хотя бы пытались самостоятельно решить эти задачи? Или для вас форум — это некий "черный ящик", на вход — задачу, на выходе забираете готовое решение. Вы упорно выкладываете типовые задачи, а на форуме, между прочим, поиск есть...
0
Mr.X
Эксперт С++
3178 / 1705 / 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
Привет! Вот еще темы с решениями:

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

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

Вывести все числа до заданного числа, которые делятся на каждую свою цифру.
Нужно написать программу по выводу всех чисел до заданного n, которые делятся...

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


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

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

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