10859번 - 뒤집어진 소수
시간초과는 아마 소수판별알고리즘을 O(n^0.5)로 만들어서 그런거같긴한데
왜 pypy3는 런타임에러가 날까요?
현재 BOJ의 Pypy에는 exit이 없어서 sys.exit을 사용해야 합니다. BOJ에서만 보이는 현상으로 알고 있어서 왜 그렇게 되었는지는 모르겠습니다.
아이고 감사합니다 시간초과는 안뜨는데 끝자락에서 틀렸습니다 뜨는걸 보니 예외가 몇개 더있나보네용 열심히 풀어보겠습니다
이미 해결하신 것 같지만 한 가지 말씀드리자면
O(n**0.5)가 느리기는 하지만 내부적으로도 불필요한 계산이 많습니다.
위와 같이 짜게 되면 i <= temp를 계산할 때 매번 정수 i와 실수 temp를 비교하게 되어서 타입 변환에 시간을 쓰게 됩니다.
temp를 처음부터 int로 변환해 두고 while 대신 for~range 문으로 대체해본 결과 python으로도 시간 내에 통과합니다.(≈7.7s)
댓글을 작성하려면 로그인해야 합니다.
chminoo 4년 전
시간초과는 아마 소수판별알고리즘을 O(n^0.5)로 만들어서 그런거같긴한데
왜 pypy3는 런타임에러가 날까요?