약수의 갸수가 짝수이면 그 값을 더해주고 홀수이면 빼주는 문제다.
처음에는 벡터로 풀려 했으나, 가만 보니 벡터를 사용하지 않아도 충분히 풀 수 있는 문제였다.
이중 반복문을 사용할 건데, 첫 반복문은 left부터 right까지 가는 반복문. 두 번재 반복문은 1부터 해당되는 값까지 나눠서 약수를 보는 반복문이다. 만일 나머지가 0이라 약수이면 count를 하나씩 더해준다. 두 번째 반복문을 빠져 나와 약수의 개수(count)가 홀수이면 answer를 값만큼 빼주고 짝수이면 answer를 값만큼 더해준다.
그리고!!! count는 0으로 초기화해서 다음 값을 준비한다.
#include <string>
#include <vector>
using namespace std;
int solution(int left, int right) {
int answer = 0;
int count = 0;
for(int i=left; i<=right; i++){
for(int j=1; j<=i; j++){
if(i%j == 0){
count++;
}
}
count%2 ? answer = answer-i : answer = answer+i;
count = 0;
}
return answer;
}