코딩테스트 - 약수의 개수와 덧샘, C언어

728x90
반응형

두 정수 a, b 가 주어진다. 

 

a부터 b 까지 숫자의 약수를 구한다. 약수의 갯수가 짝수면, 해당 수를 더하고, 홀수면 뺸다.

 

다양한 코드가 있지만 거의 대부분 나와같이 코드를 작성했고, 어떤 한분이 조금 독특한 방식으로 코드를 작성했는데, 이건 뭐 개인의 취향이지만 난 가독성도 중요하게 생각한다. 짧고 간결한것도 중요하지만, 누구나 다 쉽게 읽고 빠르게 파악할 수 있도록 코드를 짜는것도 중요하다고 생각한다. 

 

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int left, int right) {
    int answer = 0;
    int count = 1; // 1은 무조건 포함 
    int len = right - left; // left 부터 right 까지 갯수 

    for(int i = left; i <= right; i++)    {
        for(int k = 2; k <= i; k++)  {
            if(i % k == 0)  {
                count++;
            }
        }
        if(count % 2 == 0)  {
            answer += i;
        }
        else {
            answer -= i;
        }
        count = 1;
    }
    return answer;
}

 

어렵지 않다. 

 

 - 끝 -

 

728x90
반응형