Как оптимизировать программу еще?
Оптимизируйте программу еще, вычисляя квадратный корень числа n один раз, а не раз за разом. Нужно объявить еще одну переменную и установить ее значение равным квадратному корню числа n.
#include <iostream>
#include <math.h>
using namespace std;
int main() {
int n, i;
bool is_prime;
is_prime = true;
cout << "Enter the number: ";
cin >> n;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0)
is_prime = false;
break;
}
if (is_prime)
cout << "Number is prime";
else
cout << "Number is not prime";
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Я думаю - уверен! - что нормальный компилятор и так вычислит этот корень один раз.
Но раз так, то я бы сделал так:
for (int i = 2, m = sqrt(n)+0.5; i <= m; i++) {
или так
for (i = 2; i*i <= n; i++) {
Но куда большую выгоду даст отдельная проверка на делимость на 2 и дальше - проход по нечетным:
if (n%2 == 0) is_prime = false; else
for (i = 3; i*i <= n; i+=2) {
.....