풀이과정
이중 for문을 돌려 i값을 1 ~ i로 나눈 값이 0이면 약수라는 뜻이다.
cnt로 약수의 개수를 구해 개수가 짝수면 더해주고, 홀수면 빼주는 식으로 구현했다.
#include <string>
#include <vector>
using namespace std;
int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
int cnt = 0;
for(int j = 1; j <= i; j++){
if(i % j == 0) cnt++;
}
if(cnt % 2 == 0) answer += i;
else if(cnt % 2 == 1) answer -= i;
}
return answer;
}
'🍞 Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스][Level1] 이상한 문자 만들기 c++ (0) | 2022.09.02 |
---|---|
[프로그래머스][Level1] 약수의 합 c++ (0) | 2022.09.02 |
[프로그래머스][Level1] 수박수박수박수박수박수? c++ (0) | 2022.09.02 |
[프로그래머스][Level1] 소수 찾기 c++ (0) | 2022.09.02 |
[프로그래머스][Level1] 서울에서 김서방 찾기 c++ (0) | 2022.09.02 |