형들 제발 이거 진짜 못하겠어

소수판별 알고리즘좀 알려줘

리턴형식은 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;

}

이런 무식한 방법말구.. 좋은거없을까? 횽들 도움이필요해

하지만 여기서 많이 질문해봤는데 도움주는 답글은 못봤지만 지푸라기라도잡고싶다