https://school.programmers.co.kr/learn/courses/30/lessons/12921
import java.util.stream.IntStream;
class Solution {
public int solution(int n) {
// 소수의 개수를 반환
return (int) IntStream.rangeClosed(2, n).filter(this::isPrime).count();
}
// 소수 판별 메소드
private boolean isPrime(int num) {
if (num <= 1) return false; // 1 이하인 경우 소수가 아님
if (num == 2) return true; // 2는 소수
if (num % 2 == 0) return false; // 2를 제외한 짝수는 소수가 아님
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) return false; // 나누어 떨어지면 소수가 아님
}
return true; // 소수임
}
}
마음에 든다.
'코딩테스트 연습' 카테고리의 다른 글
이진 변환 반복하기 (0) | 2024.05.12 |
---|---|
최솟값 만들기 (0) | 2024.05.12 |
K번째수 (0) | 2024.05.10 |
[1차] 비밀지도 (0) | 2024.05.10 |
크기가 작은 부분 문자열 (0) | 2024.05.08 |