gs25   2년 전

제 풀이의 개요는 다음과 같습니다. 먼저 루트N  이상인 소수 k 개의 제곱을 각각 v에 넣어줍니다. 그리고 v의 최대원소를 Max_prime_power로 정의해줍니다.

이제 세재곱 이상부터는 소수의 N제곱이 Max_prime_power 보다 작을때까지 넣어줍니다. 2의 64제곱보다 작아야되니깐 61 제곱까지 반복해줍니다. 그후 v를 정렬하고 k번째 원소를 출력합니다.  모두 N 이상을 기준으로 했기에 문제는 초과이므로 N=N+1 까지 해줍니다. 

제풀이에서 틀린 부분을 모르겠는데 계속 틀렸습니다가 뜹니다. 제곱부분에서 소수들이 크므로 그부분은 밀러 라빈 판정법을 적용시켰고 나머지는 일반적인 루트까지 판별하는 소수 판정법을 이용했습니다. (제 컴퓨터에서 1**18, 100000 넣어도 빠르게 돌아갑니다) 어디서 틀렸는지 도저히 모르겠습니다.ㅜㅜ 도움 부탁드립니다.

nick832   9달 전

이분은 이미 해결하신 듯 하지만 혹시 비슷한 사람이 있을까 댓글 남깁니다.

Pow(a, b)가 1e19를 넘어가면서 long long overflow가 나면 결과가 이상해질 수 있음에 유의하세요.

댓글을 작성하려면 로그인해야 합니다.