https://school.programmers.co.kr/learn/courses/30/lessons/120846
약수의 개수가 세 개 이상인 수를 합성수라고 합니다.
자연수 n
이 매개변수로 주어질 때 n
이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
1 ≤ n ≤ 100
n | result |
---|---|
10 | 5 |
15 | 8 |
10 이하 합성수는 4, 6, 8, 9, 10 로 5개입니다. 따라서 5를 return합니다.
15 이하 합성수는 4, 6, 8, 9, 10, 12, 14, 15 로 8개입니다. 따라서 8을 return합니다.
class Solution {
public int solution(int n) {
int answer = 0;
int count=0;
while(n!=0){
count=0;
for(int i=1;i<=n;i++){
if(n%i==0){
count++;
}
}
if(count>2){
answer++;
}
n=n-1;
}
return answer;
}
}
n
이 0이 될 때 까지 n번 반복 시키면서 n의 크기를 -1씩 해주었다.
만약 n
이 for문 n부터 1까지로 해서 count++
가 2보다 크면 합성수로 계산했다.