33 lines
516 B
C++
33 lines
516 B
C++
#include <iostream>
|
|
|
|
void Sundaram(bool A[], int N)
|
|
{
|
|
int i, j;
|
|
for (i = 1; i <= N; i++) A[i] = true;
|
|
i = 1; j = 1;
|
|
while ((2 * i * j + i + j) <= N)
|
|
{
|
|
while ( (N - i) / (2 * i + 1) >= j )
|
|
{
|
|
A[2 * i * j + i + j] = false;
|
|
j++;
|
|
}
|
|
i++;
|
|
j = i;
|
|
}
|
|
|
|
for (i = 1; i <= N; i++) {
|
|
if (A[i]) std::cout << 2 * i + 1 << " ";
|
|
}
|
|
}
|
|
|
|
int main()
|
|
{
|
|
setlocale(LC_ALL, "Rus");
|
|
int N, i, j;
|
|
bool A[1000];
|
|
std::cout << "N > "; std::cin >> N;
|
|
std::cout << "Простые числа: 2 ";
|
|
Sundaram(A, N);
|
|
}
|