PS/프로그래머스
프로그래머스 약수의 개수와 덧셈 cpp
지기_
2021. 5. 24. 00:48
반응형
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;
}
반응형