Вопрос задан 04.11.2023 в 17:30. Предмет Информатика. Спрашивает Кудербаева Айдана.

Задача №112228. Простые числа Напишите программу, которая вводит натуральные числа a и b и

выводит все простые числа в диапазоне от a до b . Входные данные Входная строка содержит два натуральных числа, a и b . Гарантируется, что a ≤ b . Выходные данные Программа должна вывести в одной строке через пробел все простые числа на отрезке [ a , b ] . Если таких чисел нет, программа должна вывести 0. в C++ пожалуйста
0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

#include <cmath>

#include <vector>

using namespace std;

void show_vector(vector <unsigned int> a)

{

   for (unsigned int i = 0; i < a.size() - 1; i++)

       cout << a[i] << " ";

   cout << a.back() << endl;

}

       

bool f_prostoe(unsigned int x)

{

   bool prostoe = true;

   for(unsigned int i = 2; i <= int(sqrt(x)); i++)

   {

       if (x % i == 0)

       {

           prostoe = false;

           break;

       }

   }

   return prostoe;

}

int main()

{

   bool pustoi = true;

   vector <unsigned int> chisla = {0};

   cout << "Введите диапазон, вначале min, затем max." << endl;

   cout << "min = ";

   unsigned int x;

   cin >> x;

   cout  <<"max = ";

   unsigned int y;

   cin >> y;

   for(x = x; x <= y; x++)

   {

       if(f_prostoe(x))

       {

           if (pustoi)

           {

               pustoi = false;

               chisla.pop_back();

           }

           chisla.push_back(x);

       }

   }

   cout << "Простые числа: " << endl;

   show_vector(chisla);

   return 0;

}

Объяснение:

В коде есть костыли, но он работает.

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

Для решения этой задачи вам потребуется написать программу на C++, которая будет принимать два входных числа (a и b), а затем выводить все простые числа в диапазоне от a до b.

Простые числа - это числа, которые имеют только два делителя: 1 и само число. Чтобы проверить, является ли число простым, можно использовать цикл от 2 до квадратного корня из этого числа и проверить, делится ли число без остатка на каждом из этих чисел. Если число делится без остатка хотя бы на одно из этих чисел, то оно не является простым.

Вот пример кода на C++, который решает эту задачу:

```cpp #include #include

bool isPrime(int n) { if (n <= 1) return false; if (n == 2) return true; if (n % 2 == 0) return false; for (int i = 3; i <= sqrt(n); i += 2) { if (n % i == 0) return false; } return true; }

int main() { int a, b; std::cin >> a >> b;

bool found = false; for (int i = a; i <= b; ++i) { if (isPrime(i)) { std::cout << i << ' '; found = true; } }

if (!found) { std::cout << 0; }

return 0; } ```

В этом коде функция `isPrime` проверяет, является ли число простым, а основной цикл в функции `main` проходит через все числа от a до b и выводит те из них, которые являются простыми. Если простых чисел нет, программа выводит 0.

0 0

Похожие вопросы

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

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

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