제 풀이의 개요는 다음과 같습니다. 먼저 루트N 이상인 소수 k 개의 제곱을 각각 v에 넣어줍니다. 그리고 v의 최대원소를 Max_prime_power로 정의해줍니다.
이제 세재곱 이상부터는 소수의 N제곱이 Max_prime_power 보다 작을때까지 넣어줍니다. 2의 64제곱보다 작아야되니깐 61 제곱까지 반복해줍니다. 그후 v를 정렬하고 k번째 원소를 출력합니다. 모두 N 이상을 기준으로 했기에 문제는 초과이므로 N=N+1 까지 해줍니다.
제풀이에서 틀린 부분을 모르겠는데 계속 틀렸습니다가 뜹니다. 제곱부분에서 소수들이 크므로 그부분은 밀러 라빈 판정법을 적용시켰고 나머지는 일반적인 루트까지 판별하는 소수 판정법을 이용했습니다. (제 컴퓨터에서 1**18, 100000 넣어도 빠르게 돌아갑니다) 어디서 틀렸는지 도저히 모르겠습니다.ㅜㅜ 도움 부탁드립니다.
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 넣어도 빠르게 돌아갑니다) 어디서 틀렸는지 도저히 모르겠습니다.ㅜㅜ 도움 부탁드립니다.