![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Sergio Ramos |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 86 Регистрация: 16.11.2010 Город: Saratov ![]() |
Код #include "iostream" #include "vector" using namespace std; int f(int n) { vector<char> prime (n+1, true); prime[0] = prime[1] = false; for (int i=2; i<=n; ++i) if (prime[i]) for (int j=i*i; j<=n; j+=i) prime[j] = false; return prime[n];} int main () { int n; cin >> n; int *a=new int [n]; for (int i=0;i<n;i++) {cin >> a[i]; if (f(a[i])) cout << "YES" << endl; else cout << "NO" << endl;} return 0;} Числа в диапазоне от 1 до 10^9. По времени работает нормально, но, я так понимаю, на слишком больших числах использует много памяти. Как можно переделать? |
![]() ![]() |
Vahappaday |
![]()
Сообщение
#2
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
не совсем понял логику того, что происходит в f().
Я бы сделал так: 1. Считать n чисел. 2. Найти максимальное. 3. Найти все простые до sqrt(n), записав их в массив. 4. Поочередно смотреть остаток от деления всех пользовательских чисел на все найденные простые. Если хотя бы в одном случае остаток 0 - число не простое, иначе - простое. Попробуйте сами код, если что - помогу. |
Sergio Ramos |
![]()
Сообщение
#3
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 86 Регистрация: 16.11.2010 Город: Saratov ![]() |
не совсем понял логику того, что происходит в f(). Решето Эратосфена Была такая идея, но проблема в построении ряда простых чисел, меньших sqrt[max(n)] Почитал про тест BPSW, он достаточно объемный, потому что проверяет кучу условий. но работает нормально. задачу сделал |
Vahappaday |
![]()
Сообщение
#4
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
хм)) интересный, не видел раньше) спасибо)
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 13:37 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru