Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 주어진 숫자가 Harshad 수인지 확인하는 프로그램

주어진 숫자가 Harshad 수(하샤드 수)인지 판별해야 할 때는 간단한 반복문과 '%' 연산자, '+' 연산자, '//' 연산자만 활용하면 됩니다.

Harshad 수는 Niven 수라고도 불리며, 어떤 정수를 특정 진법으로 표현했을 때 그 수의 각 자릿수 합으로 나누어 떨어지는 수를 의미합니다. 예를 들어 10진수에서 18은 자릿수의 합이 1+8=9이고, 18÷9=2로 나누어 떨어지므로 Harshad 수입니다. 참고로 1부터 10까지의 모든 자연수와 12, 21 등도 Harshad 수에 해당합니다.

아래는 이를 구현한 예제입니다.

예제 코드

my_num = 134
remaining = sum_val = 0
print("확인할 숫자의 복사본을 생성합니다...")
my_num_copy = my_num;
while(my_num > 0):
    remaining = my_num%10;
    sum_val = sum_val + remaining;
    my_num = my_num//10;
if(my_num_copy % sum_val == 0):
    print(str(my_num_copy) + "은(는) Harshad 수입니다");
else:
    print(str(my_num_copy) + "은(는) Harshad 수가 아닙니다");

실행 결과

확인할 숫자의 복사본을 생성합니다...
134은(는) Harshad 수가 아닙니다

코드 설명

  • 먼저 확인할 숫자를 변수에 정의합니다.
  • 각 자릿수의 합을 저장할 sum 변수를 0으로 초기화합니다.
  • 숫자가 0보다 큰 동안 반복하면서 나머지 연산(%)을 통해 일의 자릿수를 하나씩 추출합니다.
  • 추출한 자릿수를 합계에 더하고, 숫자를 10으로 나눈 몫(//)으로 갱신하여 다음 자릿수로 넘어갑니다.
  • 반복이 끝나면 원래 숫자를 자릿수의 합으로 나누었을 때 나머지가 0이면 Harshad 수로 판별합니다.
  • 나머지가 0이 아니라면 Harshad 수가 아닌 것으로 처리됩니다.