Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

입력한 숫자가 암스트롱 수인지 확인하는 C# 프로그램

암스트롱 수(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