เมื่อต้องการตรวจสอบว่าตัวเลขที่กำหนดเป็น Harshad number หรือไม่ สามารถใช้ลูปธรรมดาและตัวดำเนินการ '%', '+', '//' ได้
Harshad number เรียกอีกอย่างว่า Niven number เป็นตัวเลขที่ฐานเป็นจำนวนเต็มที่หารด้วยผลรวมของหลักของมันได้ลงตัวเมื่อเขียนในฐานค่านั้น
ตัวอย่าง
my_num = 134
remaining = sum_val = 0
print("A copy of the number to be checked is being made...")
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) + " is a Harshad number")
else:
print(str(my_num_copy) + " isn't a Harshad number")
ผลลัพธ์
A copy of the number to be checked is being made... 134 isn't a Harshad number
คำอธิบาย
- กำหนดตัวเลข
- กำหนดตัวแปร sum = 0
- ตรวจสอบตัวเลขมากกว่า 0 ทำ modulus operation
- บวกผลลัพธ์เข้ากับ 'sum' และหารตัวเลขเอาส่วนเต็มด้วย 10 อีกครั้ง
- หากเศษเมื่อหารตัวเลขกับ sum เป็น 0 ถือว่าเป็น Harshad number
- มิฉะนั้น ไม่ถือว่าเป็น Harshad number