#12928 문제이름
문제 정리
n의 약수를 모두 더한 값을 리턴
생각해보기
약수라는 것은.. 만약에 수가 12면
(1, 12) (2, 6) (3, 4) (4, 3).. 이렇게 가다가 (x, y)에서 x가 y보다 커지면 멈추면 된다.
코드 쓰기
내 풀이
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
if(n <= 1){
return n;
}
for(int i=1; i<=n/2; i++){
if(n % i == 0){
if( n / i < i){
break;
}else if(n / i == i){
answer += i;
}else {
answer += i;
answer += n / i;
}
}
}
return answer;
}
풀고 나서 알게된 것
n이 1일때랑, 25처럼 (5, 5)가 나올때를 고려해줘야 함!