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 }
제가 잘못 알고 있거나 잘못된 부분이 있을 경우 알려주시고 추가로 궁금한 점 있으신 분들도 댓글이나 메일 주시면 성실히 답변해 드리겠습니다.🧑🏻💻
감사합니다~😄
728x90
'Algorithm > level1' 카테고리의 다른 글
[ 프로그래머스 - Java & Kotlin ] 문자열 다루기 기본 ( 자바 & 코틀린 ) (0) | 2021.10.06 |
---|---|
[ 프로그래머스 - Java & Kotlin ] 서울에서 김서방 찾기 ( 자바 & 코틀린 ) (0) | 2021.10.06 |
[ 프로그래머스 - Java & Kotlin ] 수박수박수박수박수박수? ( 자바 & 코틀린 ) (0) | 2021.10.06 |
[ 프로그래머스 - Java & Kotlin ] 문자열을 정수로 바꾸기 ( 자바 & 코틀린 ) (0) | 2021.10.06 |
[ 프로그래머스 - Java & Kotlin ] 시저 암호 ( 자바 & 코틀린 ) (0) | 2021.10.04 |