Продолжительность цикла до i*i <= n

Вот код:

int foo(int n)
{
    if(n == 1)
        return 1;
    int f = 0;
    int i;
    for(i=1; i*i<=n; i++)
        if(n%i == 0)
            f+=2;
    i--;
    if(i*i == n)
        f--;
    return f;
}

Моя проблема в том, что я не могу определить Θ для этого цикла,
Я думаю, что это квадратный корень (n), но есть ли порядок с именем квадратный корень n?

Мой ответ:
Тета (sqrt(n)) из-за этого цикла

for(i=1; i*i<=n; i++) 

i * i <= n взять sqrt для обеих сторон

i <= sqrt(n)

Поправь меня, если я ошибаюсь!

1 ответ

O(sqrt n) выглядит странно, но прямо для меня

Другие вопросы по тегам