
Составьте программу вывода на экран всех простых чисел, не превосходящих заданного N. Простым
называется натуральное число больше единицы, имеющее только два делителя: единицу и само это число.

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

#include <iostream>
#include <algorithm>
#include <vector>using namespace std;bool Has(const vector<int> &primeNumbers, int value)
{
bool has = false;
for (int prime_number : primeNumbers)
{
if (value % prime_number == 0)
{
has = true;
}
}
return has;
}vector<int> GetPrimeNumbers(int i)
{
vector<int> primeNumbers= { 2, 3 };
for (int j = 4;j < i;j++)
{
if (!Has(primeNumbers, j))
{
primeNumbers.push_back(j);
}
}
return primeNumbers;
}int main()
{
int n;
cin >> n;
vector<int> prime_numbers = GetPrimeNumbers(n);
for (int prime_number : prime_numbers)
{
cout << prime_number << endl;
}
cin >> n;
return 0;
}



Напишу ответ, потому что:
1) Все же С++ изучают реже, чем Паскаль
2) Чтобы в очередной раз показать преимущества Паскаля над С-подобными языками для школьных задач.
Как говорится, "Имеющий глаза - да увидит!"
// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('N=');
for var i:=1 to n do begin
var (flag,j,r):=(True,2,Round(Sqrt(i)));
while flag and (j<=r) do
if i mod j = 0 then flag:=false
else j+=1;
if flag then Print(i)
end
end.
Пример
N= 150
1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili