Codility Java CountFactors

업데이트:

문제

Link

코드

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
  public int solution(int N) {
    if (N == 1) {
      return N;
    }
    int result = 1;
    for (int idx = 2; idx < Math.sqrt(N); idx++) {
      if (N % idx == 0) {
        result++;
      }
    }
    result = result * 2;
    if (Math.sqrt(N) % 1 == 0) {
      result++;
    }
    return result;
  }
}

설명

  1. 주어진 변수 N이 1일 경우 1개이므로, 그대로 주어진 문제의 결과로 반환한다.
  2. 결과값을 담는 변수 result는 1인 경우를 포함하여 1로 초기화 한다.
  3. 2번의 이유로 2부터 주어진 변수 N의 제곱근의 값만큼 반복한다.
    • 주어진 변수 N이 만일 정수라면, N의 제곱근의 인수는 해당 값을 전후로 개수가 동일하게 된다.
  4. 3번의 이유로 반복이 끝나면 인수의 개수를 담은 result에 2를 곱하고, 만일 제곱근의 값이 정수라면 1을 더해서 주어진 문제의 결과로 반환한다.

결과

Link

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기