728x90
주어진 수까지의 정수 중 소수의 개수 반환
public int solution(int n) {
int answer = (n>=2)? 1: 0;
for(int i=3; i<=n;i+=2){
if(isPrime(i)){
answer++;
}
}
return answer;
}
public boolean isPrime(int n){
for(int i=2; i*i<=n;i++){
if(n%i==0){
return false;
}
}
return true;
}
n이 2일땐 소수는 2 자신을 갖고 1이하는 답은 0 이다.
소수를 찾을 때 3부터 찾고
효율성을 위해 소수인지 확인할 때는 i^2이 해당 수까지만 계산한다.
'Java > Coding Test' 카테고리의 다른 글
공원 산책 문제풀이 (0) | 2023.09.24 |
---|---|
신고 결과 받기 문제풀이 (0) | 2023.09.23 |
소인수분해 문제풀이 (0) | 2023.09.18 |
치킨 쿠폰 문제풀이 (0) | 2023.09.17 |
유한소수 판별하기 문제풀이 (0) | 2023.09.17 |