2014-12-13 6 views
0

그래서 두 번째 소수의 합계이고 정수 제곱근을 제공하는 n 번째 숫자를 찾는 문제를 해결해야합니다. 내 문제는 eratosthenes의 체가 너무 많은 메모리를 사용하고 소수를위한 순진 검사가 너무 느리다는 것이다. 임시 메모리없이 빠르고 쉽게 해결할 수있는 방법은 없나요? 나는 fermat의 정리를 사용하려했지만 속도가 느려졌다.숫자가 체 없이는 소수인지 확인하십시오.

미리 감사드립니다.

+0

이 숫자의 크기는 어느 정도입니까? 소수성을 검사하는 기본 방법은 [시험 구분] (http://en.wikipedia.org/wiki/Trial_division)입니다. 비교적 빠른 기계에서는 작은 숫자로는 충분합니다. a) 홀수 약수 b) 오직 소수 제수로 최적화 할 수 있습니다. 설명을 보려면 [이 대답] (http://stackoverflow.com/a/27337333/586873)을 참조하십시오. –

답변

1

소수성 테스트에는 Rabin-Miller를 사용할 수 있습니다. 확률 론적이기 때문에 숫자는 아마 소수 일 뿐이지 만 확실한 수준을 설정할 수 있습니다. 그것은 매우 빠르고 메모리 요구량이 적습니다.

분명히 짝수 인 경우에만 2 개의 소수 (합계 2를 가짐)의 합계가 될 수 있기 때문에 짝수의 제곱을 고려해야합니다.