เมื่อต้องการตรวจสอบว่าตัวเลขที่กำหนดเป็น Disarium number ให้คำนวณผลรวมของหลักยกกำลังตำแหน่งของแต่ละหลัก ก่อนหน้านั้นต้องหาจำนวนหลักในตัวเลข
Disarium Number คือตัวเลขที่ผลรวมของหลักยกกำลังตำแหน่งของแต่ละหลักเท่ากับตัวเลขเดิม
ตัวอย่าง
def length_calculation(num_val):
length = 0
while num_val != 0:
length = length + 1
num_val = num_val // 10
return length
my_num = 192
remaining = sum_val = 0
len_val = length_calculation(my_num)
print("A copy of the original number is being made...")
num_val = my_num
while my_num > 0:
remaining = my_num % 10
sum_val = sum_val + int(remaining ** len_val)
my_num = my_num // 10
len_val = len_val - 1
if sum_val == num_val:
print(str(num_val) + " is a disarium number !")
else:
print(str(num_val) + " isn't a disarium number")
ผลลัพธ์
A copy of the original number is being made... 192 isn't a disarium number
คำอธิบาย
- กำหนดเมธอด 'length_calculation' คำนวณจำนวนหลักในตัวเลข
- คำนวณการหารเอาส่วนเต็มของตัวเลขและคืนค่าความยาว
- กำหนดตัวเลข และแสดงบนคอนโซล
- ใช้ modulus operation หาเศษ บวกเข้าตัวแปร sum
- คูณกำลังของตำแหน่งกับตัวเลขเอง
- เปรียบเทียบกับตัวเลข
- หากเท่ากัน ถือว่าเป็น Harshad number มิฉะนั้นไม่ใช่