이 글에서는 사용자가 입력한 숫자의 약수(factor)를 모두 구해 화면에 출력하는 C# 프로그램을 단계별로 살펴봅니다. 약수란 어떤 수를 나누었을 때 나머지가 0이 되는 수를 의미합니다. 예를 들어 12의 약수는 1, 2, 3, 4, 6, 12입니다.
1단계: 숫자 입력받기
먼저 콘솔에서 숫자를 입력받습니다. Console.ReadLine()으로 문자열을 읽어온 뒤, int.Parse()를 사용해 정수형으로 변환합니다.
Console.WriteLine("Enter a Number");
n = int.Parse(Console.ReadLine());2단계: 반복문과 나머지 연산(%)으로 약수 찾기
다음으로 1부터 입력받은 숫자 n까지 변수 i를 매번 1씩 증가시키며 반복문을 실행합니다. 이때 n % i의 결과가 0이라면 i는 n을 정확히 나눌 수 있는 수, 즉 n의 약수이므로 화면에 출력하면 됩니다.
for (i = 1; i <= n; i++) {
if (n % i == 0) {
Console.WriteLine(i);
}
}% 연산자는 나눗셈의 나머지를 반환하는 모듈로(modulo) 연산자입니다. n을 i로 나눈 나머지가 0이라는 것은 i가 n의 약수라는 뜻이므로, 이 조건만 확인하면 손쉽게 모든 약수를 찾을 수 있습니다.
전체 예제 코드
지금까지 설명한 내용을 종합하여, 입력된 숫자의 약수를 구하는 완성된 프로그램 코드는 다음과 같습니다.
using System;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int n, i;
Console.WriteLine("Enter a Number");
n = int.Parse(Console.ReadLine());
Console.WriteLine("Factors = ");
for (i = 1; i <= n; i++) {
if (n % i == 0) {
Console.WriteLine(i);
}
}
Console.ReadLine();
}
}
}
실행 결과
프로그램을 실행하고 숫자를 입력하면, 해당 숫자의 모든 약수가 한 줄씩 차례대로 출력됩니다. 예를 들어 12를 입력한 경우 다음과 같은 결과를 얻을 수 있습니다.
Enter a Number
12
Factors =
1
2
3
4
6
12