암스트롱 수(Armstrong Number)란?
암스트롱 수는 3자리 숫자를 기준으로 할 때, 각 자릿수의 세제곱(세제곱근의 합)이 원래 숫자 자신과 같은 수를 의미합니다.
예를 들어, 153은 다음과 같습니다.
1³ + 3³ + 5³ = 153
대표적인 3자리 암스트롱 수로는 153, 370, 371, 407 등이 있습니다.
암스트롱 수 확인 로직
C#에서 암스트롱 수를 확인하려면 먼저 숫자의 각 자릿수를 추출해야 합니다. 숫자를 10으로 나눈 나머지를 구하면 일의 자리 숫자를 얻을 수 있고, 다시 10으로 나누어 몫을 취하면 한 자리씩 이동하며 모든 자릿수를 처리할 수 있습니다. 여기서 val은 암스트롱 수인지 확인하고자 하는 숫자입니다.
for (int i = val; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem*rem*rem;
}반복문이 끝나면 계산된 합계(sum)를 원래 값(val)과 비교합니다. 두 값이 일치한다면 각 자릿수의 세제곱의 합이 원래 숫자와 같다는 의미이며, 이 숫자는 암스트롱 수라고 판단할 수 있습니다.
if (sum == val) {
Console.Write("Armstrong Number");
} else {
Console.Write("Not an Armstrong Number");
}전체 예제 코드
다음은 입력한 숫자가 암스트롱 수인지 확인하는 완전한 C# 프로그램 예제입니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Demo {
class ApplicationNew {
static void Main(string[] args) {
int val = 153, sum = 0;
int rem;
// check for armstrong
for (int i = val; i > 0; i = i / 10) {
rem = i % 10;
sum = sum + rem*rem*rem;
}
if (sum == val) {
Console.Write("Armstrong Number");
} else {
Console.Write("Not an Armstrong Number");
}
Console.ReadLine();
}
}
}
실행 결과
위 프로그램을 실행하면 153은 각 자릿수(1, 3, 5)의 세제곱 합이 153과 같으므로 다음과 같은 결과가 출력됩니다.
Armstrong Number