728x90

두 자연수의 곱이 n이 되는 자연수 순서쌍의 개수 구하기 

 

-i의 제곱이 n과 같거나 작을때 까지 구하고 

i가 정확히 n의 제곱근인 경우, 구한 answer의 2배에서 1을 빼고 아니면 그냥 2배를 반환하면 된다.

public int solution(int n) {

int answer = 0;

boolean isSquare = false;

for (int i = 1; i * i <= n; i++) {

if (i * i == n)

isSquare = true;

if (n % i == 0) {

answer++;

}

}

answer *= 2;

if (isSquare)

answer--;

return answer;

}

- 다른 사람의 풀이를 보다가 boolean을 선언할 필요가 없어서 조금 개선해보았다. 

나중에 2배를 곱하지 않고 처음 answer를 증가시킬때부터 2배로 증가시키고 제곱근인 경우만 1 증가시켰다.

public int solution2(int n) {

int answer = 0;

for (int i = 1; i * i <= n; i++) {

if (i * i == n) answer++;

else if (n % i == 0) {

answer+=2;

}

}

return answer;

}

'Java > Coding Test' 카테고리의 다른 글

문자열 정렬하기(1) 문제풀이  (0) 2023.09.10
점의 위치 구하기 문제풀이  (1) 2023.09.09
삼각형의 완성조건  (0) 2023.09.09
배열의 유사도 문제풀  (0) 2023.09.09
문자열 뒤집기 문제풀이  (1) 2023.09.09

+ Recent posts