-
Level1) 소수 찾기PS/programmers 2020. 9. 9. 18:34
class Solution { public static int solution(int n) { int count = 0; for (int i = 2; i <= n; i++) { // 2부터 n까지의 소수 boolean isTrue = true; for (int j = 2; j <= Math.sqrt(i); j++) { // if (i % j == 0) { isTrue = false; break; } } if (isTrue) { count++; } } return count; } }
- 실패
- n의 범위가 커서 O(n^2)으로 풀면 시간초과인데 방법 생각이 안남
- 찾아보니 소수 조건중 이런게 있어서 두번째 for문에서 j의 범위를 Math.sqrt로 제곱근으로 줄여 줬더니 통과했다.
* 소수 조건
자연수 n이 소수이기 위해서는 n이 n의 제곱근보다 작은 어떤 소수로도 나눠지지 않는다.
'PS > programmers' 카테고리의 다른 글
Level1) 문자열을 정수로 바꾸기 (0) 2020.09.09 Level1) 수박수박수박수박수박수? (0) 2020.09.09 Level1) 서울에서 김서방 찾기 (0) 2020.09.08 Level1) 문자열 다루기 기본 (0) 2020.09.08 Level1) 문자열 내림차순으로 배치하기 (0) 2020.09.08