Простые числа в P - как насчет работы до sqrt?

Я учусь о P а также NP,
Я читал, что проблема решения, является ли данное число простым, является проблемой в P, что означает, что у него есть алгоритм полиномиального времени, который решает его.
Я также читал, что этот факт был доказан в 2002 году по алгоритму АКС.

Как мы все знаем, мы можем решить, является ли конкретное число простым, работая до его квадратного корня.

псевдокод:

isPrime(N):

sqrt(N) <- squareRoot(N)

for i from 2 to Sqrt(N)
    if (n mod i == 0)
        return false
return true

Мой вопрос прост:
Почему приведенный выше алгоритм не доказывает, что эта проблема в P?
Спасибо:)

1 ответ

Решение

Является ли алгоритм полиномиальным временем, зависит от представления входных данных. Например, большое число 9223372036854775807 подходит для 64-разрядного типа без знака. Значение результата AKS заключается в том, что он является полиномиальным по количеству битов (например, 64), а не по самому числу (например, 9223372036854775807).

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