Предмет: Информатика, автор: Semensemen123123ee

Даю 100 баллов
на C++ надо написать программу
задание с сириуса:
Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool isPrime(int n), проверяющей число на простоту, и функции vector primes(int l, int r), возвращающей список простых чисел на отрезке [l;r].
Входные данные

Дано два натуральных числа l и r (l≤r≤1000).
#include
#include
using namespace std;
bool isPrime(int n)
/* ВАШ КОД */
int main()
{
int l, r;
cin >> l >> r;
vector res = primes(l, r);
for (int i = 0; i < res.size(); ++i){
cout << res[i] << " ";
}
return 0;
}



Вот мой фрагмент кода который валится на 3-ем тесте:
{
for(int i = 2; i <= n / 2; i++){
if(!(n % i)){
return 0;
}
}
return 1;
}
vector primes(int l, int r){
vector A;
for(int i = l; i <= r; i++){
if(isPrime(i)){
A.push_back(i);
}
}
return A;
}


itsnight69: кстати, как ты вектор инициализировал без типа данных, например vector vector
у меня ошибка выдается
Semensemen123123ee: а да, но это не важно
zajcevarozana: Подскажи пожалуйста, а ты уже нашёл решение этой задачи?

Ответы

Автор ответа: itsnight69
1

#include <iostream>

#include <vector>

std::vector<int> primes(int l, int r);

bool isPrime(int n);

int main()

{

   int l,r;

   std::cin >> l >> r;

   std::vector<int> res = primes(l, r);

   for (int i = 0;i < res.size();i++)

   {

       std::cout << res[i] << " ";

   }

   return 0;

}

std::vector<int> primes(int l, int r)

{

   std::vector<int> primes;

   for (int i = l; i < r; i++)

   {

       if (isPrime(i))

       {

           primes.push_back(i);

       }

   }

   return primes;

}

bool isPrime(int n)

{

   if (n <= 2)

       return  false;

   for (int i = 3; i < n/2+1; i++)

       if (n % i == 0)

           return false;

   return true;

}


itsnight69: я думал что свой с нуля нужно писать, сори за std:: везде, просто привык писать без using namespace std;
это кстати плохая практика, лучше с std:: писать, не будет запутываний
Semensemen123123ee: понял, спасибо, но он то же на третьем тесте летит, не люблю дописывать чужие коды, особенно такие не понятные как на сириусе, но всё равно спасибо за помощь))
itsnight69: не за что!
Похожие вопросы
Предмет: Қазақ тiлi, автор: нуже1