3. 진약수의 합

zzzzwso·2023년 6월 3일
0

문제 설명

자연수 N이 주어지면 자연수 N의 진약수의 합을 수식과 함께 출력하는 프로그램을 작성하세요.

입력 설명

첫 줄에 자연수 N이 주어집니다. (3<N<=100)
20

출력 설명

첫 줄에 더하는 수식과 함께 합을 출력합니다.
1+2+4+5+10=22

내가 푼 코드

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int sum = 0;
		for (int i = 1; i <= n; i++)
		{
			if ((n % i == 0) && (n != i))
			{
				sum += i;
				cout << i << "+";
			}
		}
		cout << "=" << sum;
}

결과

수정 코드

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int sum = 0;
	cout << 1;
		for (int i = 2; i <= n; i++)
		{
			if ((n % i == 0) && (n != i))
			{
				sum += i;
				cout << "+" << i;
			}
		}
		cout << "=" << sum+1;
}

결과

1은 무조건 약수이므로 1을 빼놓고
"+"i 식으로 출력함.

위에 비해 간단한 코드

#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;
	int sum = 1;
	cout << 1;
		for (int i = 2; i < n; i++)
		{
			if (n % i == 0)
			{
				sum += i;
				cout << "+" << i;
			}
		}
		cout << "=" << sum;
}
profile
HI there

0개의 댓글