- 입문 - 합성수 찾기2023년 11월 03일 22시 02분 04초에 업로드 된 글입니다.작성자: oneseel
입문 - 합성수 찾기
문제설명
약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 100
입출력 예
입출력 예 설명
입출력 예 #1
- 10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다.
입출력 예 #1
- 15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다.
내 풀이
>> 반복문을 통해 i=4부터 n까지 돌면서 합성수인지 확인하는 메서드를 통해 합성수라면 answer에 1을 더해서 n 이하의 합성수의 개수를 반환한다.
>> 1, 2, 3은 합성수가 아니므로 i=4부터 시작한다.
>> isComposite는 매개변수 num으로 i를 나눌 때 나머지가 0이라면 약수가 있다는 의미이므로 true값을 반환한다.
>> Math.sqrt는 num의 제곱근을 나타낸다.
class Solution { public int solution(int n) { int answer = 0; for (int i = 4; i <= n; i++) { if (isComposite(i)) { answer++; } } return answer; } private boolean isComposite(int num) { for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return true; } } return false; } }
https://school.programmers.co.kr/learn/courses/30/lessons/120846
'코딩테스트' 카테고리의 다른 글
입문 - 팩토리얼 (0) 2023.11.06 입문 - 최댓값 만들기(1) (0) 2023.11.06 입문 - 주사위의 개수 (0) 2023.11.03 입문 - 공 던지기 (0) 2023.11.01 입문 - 2차원으로 만들기 (0) 2023.11.01 댓글