package CHAPTER03;

import java.util.Scanner;

public class LAB02_ArmstrongNumberFinder {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("최대 숫자를 입력하세요: ");
        int limit = scanner.nextInt();

        // 음수나 0을 입력했을 때 처리
        if (limit <= 0) {
            System.out.println("양수를 입력해주세요.");
            scanner.close();
            return; // 프로그램 종료
        }

        System.out.println("암스트롱 수(완전 거듭제곱수)를 찾습니다:");

        boolean found = false; // 암스트롱 수 여부 확인용 변수

        for (int num = 1; num <= limit; num++) {
            int sum = 0, temp = num;
            int n = (int) Math.log10(num) + 1; // 자리수 계산

            while (temp > 0) {
                int digit = temp % 10;
                sum += (int) Math.pow(digit, n); // double → int 변환
                temp /= 10;
            }
            if (sum != num) {
                continue; // 암스트롱 수가 아니면 다음 숫자로 넘어감
            }

            System.out.print(num + " "); // 암스트롱 수일 경우에만 출력
            found = true;
        }

        if (!found) {
            System.out.println("암스트롱 수가 없습니다.");
        } else {
            System.out.println(); // 출력 결과 정리
        }
        scanner.close();
    }
}

