информатика 10класс 25б
На вход передаётся 2 натуральных числа a и b, не превышающих 65536.
Необходимо вывести через пробел все простые числа, заключённые в промежутке между a и b.
Пример:
Ввод:
11 32
Ответ:
13 17 19 23 29 31
asv40707:
вы хотите тупым перебором или решетом Эратосфена?
Вроде поменял, попробуйте опять послать
Ответы
Ответ дал:
1
Ответ:
Решето Эратосфена
Объяснение:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>
using namespace std;
int pr[1000077];
int main()
{
#ifdef _DEBUG
//freopen("input.txt", "r", stdin);
#endif // _DEBUG
int a, b;
cin >> a >> b;
if (a > b)
{
swap(a, b);
}
for (int i = 2; i <= b; i++)
{
if (pr[i] == 2)
{
continue;
}
pr[i] = 1;
for (int j = i + i; j <= b; j += i)
{
pr[j] = 2;
}
}
for (int i = a + 1; i < b; i++)
{
if (pr[i] == 1)
{
cout << i << ' ';
}
}
}
стойте, какой вердикт выдаёт
wa?
понял в чём может быть ошибка
после считывания a и b добавьте
if (a > b)
{
swap(a, b);
}
{
swap(a, b);
}
всё, поменял, не заметил, что там не включительно
отпишитесь, какой вердикт выдаст
мне так стыдно, что сначала неправильный код написал
благодарю,теперь верно.)
круто
Вас заинтересует
2 года назад
2 года назад
3 года назад
3 года назад
8 лет назад
8 лет назад
9 лет назад