형들 제발 이거 진짜 못하겠어
소수판별 알고리즘좀 알려줘
리턴형식은 bool 인자는 __int64로 ㅠㅠㅠ
아니면 무슨 알고리즘을 써야하는지좀 알려줘
10의 16승*9 번 검사해야하기 떄문에..
int isprimes(uint64_t val)
{
uint64_t div, square;
if (val == 2) return true;
if ((val & 1) == 0) return false;
div = 3;
square = 9; /* 3*3 */
while (square<val)
{
if (val % div == 0) return false;
div += 2;
square = div*div;
}
if (square == val) return false;
return true;
}
이런 무식한 방법말구.. 좋은거없을까? 횽들 도움이필요해
하지만 여기서 많이 질문해봤는데 도움주는 답글은 못봤지만 지푸라기라도잡고싶다
저걸로다찾을라면 몇백년걸리는데 .. 내가 도움을받을수있을까..
구글에 하우 투 파인드 프라임 넘버 검색
소스판별... 그러니깐 특정 수(값) 가 소수인지 아닌지 판별 하는거냐 ? 아니면 1부터 시작해서 특정 수(값) 까지 소수를 몽땅 찾는거냐 ?
에라토스테네스의 체
에라토스테네스의 체 좋음
밀러라빈 이런거 안가르쳐주냐? ㅉㅉㅉ
n이 소수가 아닐 때 a^n % n = a 라면 소수다. 정확히는 561, 1105, 1729, 2465 등등 같은 이 알고리즘을 통과하는데 소수가 아닌 카마이클 수라는 것들이 극소수 존재한다. 이걸 거르는 검사를 밀러 라빈 검사라고 말한다.
a는 n 보다 작은 어떤 정수를 말한다. 이걸 한 10번 반복하면 굉장히 높은 확률로 소수를 판별한다. 이 검사가 틀일 확률은 컴파일 도중 우주에서 온 방사선에 의해 버그가 생길 확률과 같다고 한다.
100,000,000 중에 카마이클수는 255개 있으며 그러므로 이 수까지에서의 검사가 틀릴 확률은0.000000255% 이고 10번을 하게 되면 10제곱이라 양자역학적인 현상이 일어나지 않는 이상 문제가 없다.
최근대박yang빵 정보공유! 월천club 쉽다! ㅌ nete77