어떤 수가 소수인지 찾는건 O(sqrt(n))
AKS 켜라
https://en.wikipedia.org/wiki/AKS_primality_test
참고로 이런 문제에서 polynominal 이라는 뜻은 N이 입력의 크기가 아니라 N비트라는 뜻임
따라서 O(sqrt(N))은 실제로는 O(sqrt(2^N)) = O(1.4^N)
참고로 실제로는 다들 Miller-Rabin이라는 ㄱㅆㅆㅌㅊ 알고리즘을 씀. 이 알고리즘은 확률적 알고리즘인데, 판별하려는 소수가 작을때는 deterministic 하게 판별 가능함
밀러 라빈 알고리즘은 사실상 소수를 거의 1에 가까운 정확도로 찾아낼 수 있음. 개사기 알고리즘임
그럼 AKS를 이용하면 verify가 쉬워지는거지?
소수판별은 P이면서 NP임
그냥 verify 같은거 할 필요 없이 AKS 이용해서 답구해서 비교하면 되잖어
아 ㄱㅅㄱㅅ
어떤 수가 소수인지 찾는건 O(sqrt(n))
AKS 켜라
https://en.wikipedia.org/wiki/AKS_primality_test
참고로 이런 문제에서 polynominal 이라는 뜻은 N이 입력의 크기가 아니라 N비트라는 뜻임
따라서 O(sqrt(N))은 실제로는 O(sqrt(2^N)) = O(1.4^N)
참고로 실제로는 다들 Miller-Rabin이라는 ㄱㅆㅆㅌㅊ 알고리즘을 씀. 이 알고리즘은 확률적 알고리즘인데, 판별하려는 소수가 작을때는 deterministic 하게 판별 가능함
밀러 라빈 알고리즘은 사실상 소수를 거의 1에 가까운 정확도로 찾아낼 수 있음. 개사기 알고리즘임
그럼 AKS를 이용하면 verify가 쉬워지는거지?
소수판별은 P이면서 NP임
그냥 verify 같은거 할 필요 없이 AKS 이용해서 답구해서 비교하면 되잖어
아 ㄱㅅㄱㅅ