약수의 개수가 세 개 이상인 수를 합성수라고 합니다. 자연수 n이 매개변수로 주어질 때 n이하의 합성수의 개수를 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n ;i++){
int b=0;
for(int k=1;k<=i;k++){
if(i%k==0){
b++;
}
}
if(b>=3){
answer++;
}
}
return answer;
}
}
n 이하의 수를 for 문으로 돌리고 이제 이중for 문을 통해서 또 그 이하의 수 하나씩의 약수의 갯수를
b에 저장하고 안에있는 반복문이 끝나고 약수의 개수를 검사해서 3이상이면
answer 가 1씩 커지고 이런것을 계속 반복 해줘서 풀어줬다.
끝!!!
'자바 알고리즘 문제' 카테고리의 다른 글
| 등차수열의 특정한 항만 더하기 (0) | 2023.11.14 |
|---|---|
| 세로 읽기 (1) | 2023.11.14 |
| 9로 나눈 나머지 (0) | 2023.11.08 |
| 문자열 정렬하기 (2) (0) | 2023.11.07 |
| 숫자 찾기 (0) | 2023.11.07 |