본문 바로가기
Algorithm

[Programmers] 약수의 개수와 덧셈

by Y06 2022. 3. 14.

[문제]

https://programmers.co.kr/learn/courses/30/lessons/77884

 

코딩테스트 연습 - 약수의 개수와 덧셈

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

programmers.co.kr

[풀이]

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

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

    return answer;
}

int main(){
    int left=0;
    int right=0;
    
    scanf("%d %d", &left, &right);
    
    solution(left, right);
}

- 풀 때 count를 for문 안에서 초기화 해야 한다. 이 사실을 몰라서 고생했다.

- 소수를 구할 때는 i % j == 0 이라는 식을 사용한다.

'Algorithm' 카테고리의 다른 글

[BAEKJOON] 10798번: 세로읽기  (0) 2022.08.01
[Programmers] 부족한 금액 계산하기  (0) 2022.03.14
[Programmers] 두 정수 사이의 합  (0) 2022.03.12
[Programmers] K번째 수  (0) 2022.01.17
[Programmers] 중복 제거하기  (0) 2022.01.17