Level1) 소수 찾기
2020. 9. 9. 18:34ㆍPS/programmers
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 |