본문 바로가기

문제풀이/C++

[C++] 진약수의 합

728x90

[목적]

자연수 N을 입력받으면 N의 진약수의 합을 수식과 함께 출력한다.

 

[입력 예제]

20

 

[출력 예제]

1 + 2 + 4 + 5+ 10 = 22

20을 입력받게 되면 20의 약수인 [1, 2, 4, 5, 10, 20]에서 자기 자신을 뺀 진약수인 [1, 2, 4, 5, 10]을 더하는 수식과 합을 출력되면 된다.

 


[코드]

#include <iostream>
using namespace std;

int main(void) {
    int n, sum=0;
    
    cin >> n;
    
    for(int i=1; i<n; i++){
    	if(n%i==0){
    		sum += i;
    		if(i!=1) //처음이 아닐 경우에만 "+" 출력
    			cout << " + ";
    		cout << i;
		}
	}
	cout << " = " << sum;
    
    return 0;
}

 

[실행 결과]

728x90
반응형

'문제풀이 > C++' 카테고리의 다른 글

[C++] 숫자만 추출  (0) 2020.12.27
[C++] 나이 계산  (0) 2020.12.27
[C++] 나이 차이  (0) 2020.12.27
[C++] 자연수의 합  (0) 2020.12.26
[C++] 1부터 N까지의 M의 배수 합  (0) 2020.12.26