Development Logs/Algorithms
[JAVA] 프로그래머스 : 소수 찾기 (Level 1)
유뱅유뱅뱅
2020. 8. 28. 19:05
반응형
https://programmers.co.kr/learn/courses/30/lessons/12921?language=java
코딩테스트 연습 - 소수 찾기
1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상
programmers.co.kr
해결 방안
주어진 숫자 n의 1~n 까지의 소수 갯수를 찾는 문제이다.
에라토스테네스의 체를 사용하여 i 가 소수인지 확인하였다.
코드
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=2; i<=n; i++){
if(i==2){
answer++;
continue;
}
// 소수 아님
if(i%2==0) continue;
// 소수 아님
boolean flag = true;
for(int j=3; j<=(int)(Math.sqrt(i)); j+=2){
if(i%j==0) {
flag = false;
break;
}
}
if(flag){
answer++;
}
}
return answer;
}
}
반응형