Algorithm
[Programmers] 약수의 개수와 덧셈
Y06
2022. 3. 14. 20:16
[문제]
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 이라는 식을 사용한다.