알고리즘/C#

[C#] 약수의합 - 프로그래머스

야아옹 2020. 10. 16. 15:22

문제 : 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하시오!

 

제한 사항 : 

  • n은 0 이상 3000이하인 정수입니다.

풀이 : 일반적인것!

public static int solution(int n)
{
    int answer = 0;
    if (n == 0) return answer;
    int[] intLIst = Enumerable.Range(1, n).ToArray();
    for (int i = 1; i < n; i++)
    {
        if (intLIst[i] == 0) continue;
        if (n % intLIst[i] == 0)
            answer += intLIst[i];
    }
    answer += 1;
    return answer;
}

 

풀이2 : 줄여서!

public int solution(int n) 
{
    int answer = 0;
    answer = Enumerable.Range(1, n).Where(x => n % x == 0).Sum();
    return answer;
}