본문 바로가기

Algorithm/level1

[ 프로그래머스 - Java & Kotlin ] 소수 찾기 ( 자바 & 코틀린 )

728x90

( 연습문제 / 소수 찾기 )

[문제]

문제 설명

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

제한사항

  • n은 2이상 1000000이하의 자연수입니다.

입출력 예시

n result
10 4
5 3

입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환

입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환


[코드]

자바

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 2; i <= n; i++) if(isPrime(i)) answer++;
        return answer;
    }
    
    public boolean isPrime(int n){
        for(int i = 2; i <= Math.sqrt(n); i++){
            if(n % i == 0) return false;
        }
        return true;
    }
}

코틀린

fun solution(n:Int) = (2..n).count{ isPrime(it) }
fun isPrime(n:Int) = (2..sqrt(n.toDouble()).toInt()).none{ n % it == 0 }

문제 링크

 

코딩테스트 연습 - 소수 찾기

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상

programmers.co.kr

제가 잘못 알고 있거나 잘못된 부분이 있을 경우 알려주시고 추가로 궁금한 점 있으신 분들도 댓글이나 메일 주시면 성실히 답변해 드리겠습니다.🧑🏻‍💻

감사합니다~😄

728x90