
Найдите все числа из интервала (100,200) цифровой корень который является простым числом
(1,2,3,5,7). На С++ пж

Ответы на вопрос

#include <iostream>
#include <time.h>
#include <vector>
#include <numeric>
#include <algorithm>
using namespace std;
int find_digital_root(int elem) {
vector<int> temp_vec;
int sum = 0;
while (elem != 0) {
temp_vec.push_back(elem % 10);
elem = elem / 10;
}
if (temp_vec.size() == 1) {
return temp_vec[0];
}
else {
sum = accumulate(temp_vec.begin(), temp_vec.end(), 0);
temp_vec.clear();
return find_digital_root(sum);
}
}
int main()
{
int temp = 0;
for (int i = 100; i <= 200; i++)
{
temp = find_digital_root(i);
if (temp == 1 || temp == 2 || temp == 3 || temp == 5 || temp == 7) {
cout << i << endl;
}
}
}



Для решения этой задачи нам нужно найти все числа из интервала (100, 200), у которых цифровой корень является простым числом (1, 2, 3, 5, 7). Цифровой корень числа - это сумма всех его цифр, пока не останется одна цифра.
Давайте напишем программу на языке C++, которая будет выполнять это задание:
```cpp
#include
// Функция для проверки, является ли число простым bool isPrime(int number) { if (number <= 1) { return false; } for (int i = 2; i * i <= number; i++) { if (number % i == 0) { return false; } } return true; }
// Функция для вычисления цифрового корня числа int digitalRoot(int number) { int sum = 0; while (number > 0) { sum += number % 10; number /= 10; } if (sum >= 10) { return digitalRoot(sum); } return sum; }
int main() { std::cout << "Числа из интервала (100, 200) с простым цифровым корнем: " << std::endl; for (int i = 101; i < 200; i++) { int root = digitalRoot(i); if (isPrime(root)) { std::cout << i << std::endl; } } return 0; } ```
В этой программе мы использовали две функции. Функция `isPrime` проверяет, является ли число простым. Она перебирает числа от 2 до квадратного корня из числа и проверяет, делится ли число на каждое из них без остатка. Если делится, то число не является простым.
Функция `digitalRoot` вычисляет цифровой корень числа. Она суммирует все цифры числа, пока сумма не станет однозначным числом. Если сумма больше или равна 10, то функция рекурсивно вызывает саму себя для вычисления новой суммы.
В основной функции `main` мы перебираем все числа от 101 до 199 и вычисляем их цифровой корень. Затем мы проверяем, является ли цифровой корень простым числом, и если да, выводим число на экран.
Выполнив эту программу на языке C++, мы получим все числа из интервала (100, 200), у которых цифровой корень является простым числом.


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