C ++ Последовательность Хэмминга образуют натуральные числа, не имеющие других простых делителей, кроме 2, 3 и 5. Найти сумму всех элементов с номера N по номер M. Создать последовательность Хэмминга, ввести с клавиатуры числа N и M , и найти сумму элементов от N До M (СУММИРОВАТЬ ЧИСЛА, ВХОДЯЩИЕ В ПОСЛЕДОВАТЕЛЬНОСТЬ ХЭММИНГА, а не все подряд) , желательно с описанием действий

26 Июн 2020 в 19:42
175 +1
0
Ответы
1

Для решения данной задачи описан алгоритм:

Создаем функцию isHammingNumber, которая проверяет является ли число хэмминговским (т.е. обладает только простыми делителями 2, 3 и 5).

Создаем функцию findHammingNumbersInRange, которая находит все хэмминговские числа в заданном диапазоне от N до M.

Вводим с клавиатуры числа N и M.

Перебираем все числа от N до M и с помощью функции isHammingNumber определяем является ли число хэмминговским.

Если число является хэмминговским, то добавляем его к сумме.

Выводим сумму чисел от N до M, которые являются хэмминговскими.

Пример кода на C++:

#include <iostream>
bool isHammingNumber(int n) {
while (n % 2 == 0) n /= 2;
while (n % 3 == 0) n /= 3;
while (n % 5 == 0) n /= 5;
return n == 1;
}
int findHammingNumbersInRange(int N, int M) {
int sum = 0;
for (int i = N; i <= M; i++) {
if (isHammingNumber(i)) {
sum += i;
}
}
return sum;
}
int main() {
int N, M;
std::cout << "Введите числа N и M: ";
std::cin >> N >> M;
int result = findHammingNumbersInRange(N, M);
std::cout << "Сумма хэмминговских чисел от " << N << " до " << M << " составляет: " << result << std::endl;
return 0;
}

Пользователь вводит числа N и M, после чего программа выводит сумму всех хэмминговских чисел в диапазоне от N до M.

18 Апр 2024 в 10:52
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир