Напишу ответ, потому что: 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.
#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;
}