이 글에서는 사용자가 입력한 숫자가 네온 넘버(neon number)인지 판별하는 자바 프로그램 작성 방법을 단계별로 살펴봅니다.
네온 넘버란? 어떤 숫자를 제곱했을 때, 그 결과값의 각 자릿수를 모두 더한 합이 원래 숫자와 같아지는 수를 의미합니다.
네온 넘버의 이해
가장 대표적인 네온 넘버는 9입니다. 아래 과정을 통해 그 이유를 확인할 수 있습니다.
- 9의 제곱 = 81
- 각 자릿수의 합 = 8 + 1 = 9
- 결과가 원래 숫자 9와 일치 → 네온 넘버!
입력 예시:
9
출력 결과:
주어진 입력은 네온 넘버입니다.
알고리즘
네온 넘버 판별 로직은 다음과 같은 순서로 구성됩니다.
- 프로그램 시작
- 정수형 변수
my_input선언 - 사용자에게 정수 입력 요청 또는 값 직접 지정
- 입력값 읽기
- 입력값의 제곱을 계산하여
input_square변수에 저장 input_square의 각 자릿수 합을 계산한 뒤 원래 입력값과 비교- 두 값이 일치하면 네온 넘버로 판정
- 일치하지 않으면 네온 넘버가 아님으로 판정
- 결과 출력 후 프로그램 종료
예제 1: Scanner로 사용자 입력 받기
첫 번째 예제는 Scanner 클래스를 활용해 사용자가 직접 숫자를 입력하는 방식입니다. 콘솔 환경에서 실시간으로 테스트해 볼 수 있습니다.
import java.util.Scanner;
public class NeonNumbers{
public static void main(String[] args){
int my_input, input_square, sum=0;
Scanner my_scanner = new Scanner(System.in);
System.out.println("필요한 패키지가 임포트되었습니다");
System.out.println("스캐너 객체가 정의되었습니다");
System.out.println("숫자를 입력하세요: ");
my_input=my_scanner.nextInt();
input_square=my_input*my_input;
while(input_square>0){
sum=sum+input_square%10;
input_square=input_square/10;
}
if(sum!=my_input)
System.out.println("주어진 입력은 네온 넘버가 아닙니다.");
else
System.out.println("주어진 입력은 네온 넘버입니다.");
}
}실행 결과
필요한 패키지가 임포트되었습니다 스캐너 객체가 정의되었습니다 숫자를 입력하세요: 9 주어진 입력은 네온 넘버입니다.
예제 2: 값을 미리 지정하는 방식
두 번째 예제는 입력값을 코드 안에 미리 정의해 두고, 그 값을 기준으로 판별 결과를 출력합니다. 반복 테스트나 학습용으로 유용한 방식입니다.
public class NeonNumbers{
public static void main(String[] args){
int my_input, input_square, sum=0;
my_input= 9;
System.out.printf("대상 숫자는 %d 입니다", my_input);
input_square=my_input*my_input;
while(input_square>0){
sum=sum+input_square%10;
input_square=input_square/10;
}
if(sum!=my_input)
System.out.println("
주어진 입력은 네온 넘버가 아닙니다.");
else
System.out.println("
주어진 입력은 네온 넘버입니다.");
}
}실행 결과
대상 숫자는 9 입니다 주어진 입력은 네온 넘버입니다.
마무리
이처럼 제곱 연산과 나머지 연산(%)을 조합하면 자릿수 합을 손쉽게 구할 수 있습니다. 참고로 0부터 10,000 사이의 네온 넘버는 0, 1, 9 세 개뿐이라는 점도 흥미롭습니다. 여러분도 위 코드를 변형해 다양한 숫자를 직접 테스트해 보세요.