В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
tarasova751
tarasova751
24.11.2022 08:00 •  Информатика

Любое составное натуральное число 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 чисел. Составьте программу,
которая Пете с++

Ответ:
bomixov
bomixov
27.01.2024 21:43
Вот решение задачи на С++:

```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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?