Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [4542345; 4542419], простые числа. В ответе перечислите найденные числа в порядке возрастания в полях ответа (каждое число вводите в новое поле), при необходимости можно добавлять поля ответа. Строки выводятся в порядке возрастания найденных чисел.
Answers & Comments
#include <iostream>
using namespace std;
bool isPrime(int n) //функция проверки на простоту
{
for (int i = 2; i < n/2+1; i++) //цикл от 2 до половины числа
if (n % i == 0) //если делится на что то, то уже не простое, вернуть фолз
return false;
return true; //вернёт тру, если число простое
}
int main()
{
int a = 4542345, b = 4542419; //диапазоны
for (int i = a; i <= b; i++) //пробегаем по диапазону
{
if (isPrime(i)) cout << i << endl; //если простое, то распечатать
}
system("pause");
return 1;
}
4542361
4542371
4542389
4542407
Ответ: 4542361 4542371 4542389 4542407
#include <iostream>
#include <vector>
#include <sstream>
#include <set>
#include <algorithm>
#include <cmath>
#define ull unsigned long long
using namespace std;
vector<int> primes(int start, int end)
{
vector<int> vect;
for(int i = start; i <= end; i++){
int X = i;
bool is_prime = true;
for (int d = 2; d <= X/2; ++d)
if (X % d == 0) {
is_prime = false;
break;
}
if (is_prime) {
vect.push_back(X);
}
}
return vect;
}
int main(){
int start, end; cin >> start >> end;
vector<int> a = primes(start, end);
for(int i = 0; i < a.size(); i++){
cout << a[i] << " ";
}
cout << endl;
}