본문 바로가기
C 언어

C CodingTest Practice (약수의 개수와 덧셈)

by Managemnet S/W saehyeong.woo 2022. 7. 8.
SMALL

문제 설명

두 정수 Left 와 Right 가 매개변수로 주어진다. Left부터 Right 까지의 모든수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.


제한사항

1<=left<=right<=1,000


EX 입출력

left right result
13 17 43
24 27 52

 


Code Analysis

#include <stdio.h> 
#include <stdbool.h>
#include <stdlib.h>
// Header 선언

int solution(int left, int right) {
    int count = 0;  //약수의 갯수 세줄 count 초기화
    int answer = 0; //결과값 초기화
    for(left; left <=right; left++ ){
        for(int i=1; i<=right; i++){  //left부터 right의 숫자 사이까지 만들어주고, 이중 for문으로 right의 숫자까지 나머지 계산을 통해 나머지가 0이면 count++를 통해 갯수 측정 
        if(left%i==0){
            count++;
        }
    }
        if(count%2==0){  //갯수가 짝수라면 +, 개수가 음수라면 -
        answer=answer+left;
        }
        else{
            answer=answer-left;
        }
        count=0;;
    }
    
    return answer;
}

LIST