본문 바로가기
C C++/C C++ 알고리즘 문제 기타

[C/C++] 3번. 진약수의 합 - it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

by Go! Jake 2023. 3. 14.

 

문제

자연수 N이 주어지면 자연수 N의 진약수의 합을 수식과 함께 출력하는 프로그램을 작성하세
요.
▣ 입력설명
첫 줄에 자연수 N이 주어집니다. (3<N<=100)
▣ 출력설명
첫 줄에 더하는 수식과 함께 합을 출력합니다.

 

문제풀이

이번 문제는 진약수를 출력 및 합을 구하는 문제다. 1+2+......+10 = 22 등의 표출을 해야하기 때문에 맨 앞 숫자를 1로 고정하여 두고, 이후는 "+ 숫자" 형태로 출력하게 하였다. 그리고 각각은 sum으로 총합을 구할 수 있게 하였다. 조건문 2개를 두는 문제였다.

#include <iostream>
using namespace std;

int main()
{
	int N;
	int sum;
	int max;
	
	cin>>N;

	for (int i=1; i<N; i++)
	{
		if (i==1)
		{
			cout<<i;
			sum+=i;
			continue;
		}
		
		if (N%i==0)
		{
			sum+=i;
			cout<<" + "<<i;
		}
	}
	cout<<" = "<<sum;
}

 

 

댓글