М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
noer2000
noer2000
17.02.2022 06:39 •  Информатика

Любое составное натуральное число K можно разложить на множители (например: 6=2*3; 220=2*2*5*11). Петя заинтересовался
разложением чисел на множители. Но среди всех чисел он выделяет
лишь те числа, в разложении которых встречаются только 3, 5 и 7 (например:
45=3*3*5; 49=7*7). Весь вечер он вычислял и получил, что самое первое число, в
разложении которого присутствуют только числа 3, 5 и 7 это число 9, следующее
число 15, затем 21. Петя начал строить ряд таких чисел. Он нашёл первые 10
чисел своего ряда: 9, 15, 21, 25, 27, 35, 45, 49, 63, 75. Петя не хочет
останавливаться на достигнутом и решил найти 200 чисел. Составьте программу,
которая Пете с++

👇
Ответ:
slava31012
slava31012
17.02.2022
Вот решение задачи на С++:

```cpp
#include

int main() {
int count = 0; // счетчик найденных чисел
int number = 9; // начальное число
while (count < 200) { // пока не найдено 200 чисел
int temp = number; // сохраняем текущее число
bool isMatch = true; // флаг, указывающий, что число соответствует условию
while (temp > 0) {
int digit = temp % 10; // получаем последнюю цифру числа
if (digit != 3 && digit != 5 && digit != 7) { // если цифра не равна 3, 5 или 7
isMatch = false; // число не соответствует условию
break;
}
temp /= 10; // удаляем последнюю цифру из числа
}
if (isMatch) {
std::cout << number << " "; // выводим число, которое удовлетворяет условию
count++; // увеличиваем счетчик найденных чисел
}
number++; // переходим к следующему числу
}
return 0;
}
```

Объяснение:
- Мы используем переменные `count` для подсчета найденных чисел и `number` для хранения текущего числа в ряду.
- Мы используем цикл `while`, чтобы продолжать поиск чисел, пока не будет найдено 200 чисел.
- Внутри цикла мы проверяем каждое число на соответствие условию.
- Мы сохраняем текущее число во временной переменной `temp`, чтобы не изменять его значение.
- Затем мы проверяем каждую цифру числа, начиная с последней, с помощью операции остатка от деления на 10 и записываем в переменную `digit`.
- Если цифра не равна 3, 5 или 7, то число не соответствует условию и мы устанавливаем флаг `isMatch` в false и выходим из внутреннего цикла с помощью оператора `break`.
- Если все цифры удовлетворяют условию, то флаг `isMatch` остается true и мы выводим число на экран с помощью `std::cout`.
- Затем мы увеличиваем счетчик `count` и переходим к следующему числу путем инкрементирования переменной `number`.
- Программа будет продолжать выполняться до тех пор, пока не будет найдено 200 чисел удовлетворяющих условию.

Это решение позволит Пете найти первые 200 чисел ряда, в разложении которых присутствуют только числа 3, 5 и 7.
4,7(3 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ