Задача №112228. Простые числа Напишите программу, которая вводит натуральные числа a и b и
выводит все простые числа в диапазоне от a до b . Входные данные Входная строка содержит два натуральных числа, a и b . Гарантируется, что a ≤ b . Выходные данные Программа должна вывести в одной строке через пробел все простые числа на отрезке [ a , b ] . Если таких чисел нет, программа должна вывести 0. в C++ пожалуйстаОтветы на вопрос
Ответ:
#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;
}
Объяснение:
В коде есть костыли, но он работает.
Для решения этой задачи вам потребуется написать программу на C++, которая будет принимать два входных числа (a и b), а затем выводить все простые числа в диапазоне от a до b.
Простые числа - это числа, которые имеют только два делителя: 1 и само число. Чтобы проверить, является ли число простым, можно использовать цикл от 2 до квадратного корня из этого числа и проверить, делится ли число без остатка на каждом из этих чисел. Если число делится без остатка хотя бы на одно из этих чисел, то оно не является простым.
Вот пример кода на C++, который решает эту задачу:
```cpp
#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.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
