https://school.programmers.co.kr/learn/courses/30/lessons/120846
for문을 n까지 반복시켜 n이하의 모든 숫자를 탐색한다. 이후, for문을 한 번 더 돌려 n에 대한 모든 숫자를 탐색하고, i가 j로 나누어지는지를 계산한다. 이 때, 3번 나누어진다면 합성수이므로 diviCnt값을 1증가시킨다.
예를 들면 다음과 같다.
i가 6이면, j가 1,2,3,4,5,6이다. 이 때, i%j==0인 경우는 1,2,3,6으로 총 4가지이므로 diviCnt값은 4가 되고, answer값도 1 증가하게 되는 것이다.
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i<=n; i++){ //n이하의 모든 수를 돌며
int diviCnt = 0; //약수의 개수
for(int j=1; j<=n; j++){ //n이하의 숫자의 약수의 개수 찾기
if(i % j == 0){
diviCnt++;
}
}
if(diviCnt >= 3){
answer ++;
}
}
return answer;
}
}