Вопрос задан 10.01.2020 в 20:50. Предмет Информатика. Спрашивает Кулькова Анастасия.

Найдите все числа из интервала (100,200) цифровой корень который является простым числом

(1,2,3,5,7). На С++ пж
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Пудовкина Полина.

#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;

 }

}

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи нам нужно найти все числа из интервала (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), у которых цифровой корень является простым числом.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос