Здравствуйте, гость ( Вход | Регистрация )
| Sergio Ramos |
28.4.2011, 12:26
Сообщение
#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. По времени работает нормально, но, я так понимаю, на слишком больших числах использует много памяти. Как можно переделать? |
Sergio Ramos Проверка чисел на простоту 28.4.2011, 12:26
Vahappaday не совсем понял логику того, что происходит в f().... 28.4.2011, 15:32
Sergio Ramos
не совсем понял логику того, что происходит в f()... 28.4.2011, 16:34
Vahappaday хм)) интересный, не видел раньше) спасибо) 28.4.2011, 16:38![]() ![]() |
|
Текстовая версия | Сейчас: 19.4.2026, 7:34 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru