알고리즘을 어떻게 푸는가?에 대해서 공부했기에 알고리즘을 풀어보겠다.
프로그래머스에 약수의 개수와 덧셈이라는 문제이다.
https://school.programmers.co.kr/learn/courses/30/lessons/77884

두 정수가 주어질 때, 그 수 사이의 모든 수 중에서 약수의 개수가 짝수인 수는 더하고 홀수인 수는 빼는 함수를 제작하라는 문제이다.
두 정수 사이를 반복하며 해당 수의 약수의 갯수를 구하면 될 것 같다.

제한 사항도 딱히 너무 커서 시간이 오래 걸릴 문제는 아닌 듯하다.
#include <string>
#include <vector>
using namespace std;
bool DivisorIsEvenNumber(int number)
{
int divisorCount = 0;
for (int i = 1; i <= number * 0.5f; i++)
if (number % i == 0)
divisorCount++;
//본인을 추가
divisorCount++;
return divisorCount % 2 == 0;
}
int solution(int left, int right)
{
int answer = 0;
for (int i = left; i <= right; i++)
answer += DivisorIsEvenNumber(i) ? i : -i;
return answer;
}