Как оптимизировать программу еще?

Оптимизируйте программу еще, вычисляя квадратный корень числа 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) {
    .....
→ Ссылка