본문 바로가기
PS/프로그래머스

프로그래머스 약수의 개수와 덧셈 cpp

by 지기_ 2021. 5. 24.
반응형

1. 문제

약수의 갯수에 따라 더하거나 뺀다.

 

2. 설계

약수의 갯수는 보통 짝수이다. 홀수가 되는 경우는 제곱수가 되는 경우이다.

제곱수는 나누기 연산을 한 결과가 나누기 대상과 같은 경우이다.

 

3, 알고리즘

 

4. 구현

#include <bits/stdc++.h>
using namespace std;

bool squareNumber(int n){ 
    for(int i=1; i*i<=n; i++){
        if((n%i)==0){
            if((n/i)==i)    return true; //제곱수라면
        }
    }
    return false; // 아니라면
}

int solution(int left, int right) {
    int answer = 0;
    for(int i=left; i<right+1; i++){
        if(squareNumber(i)==true) answer-=i;
        else answer+=i;
    }
    return answer;
}

 

반응형

댓글