เมื่อจำเป็นต้องระบุว่าตัวเลขที่กำหนดเป็นตัวเลข Harshad หรือไม่ สามารถใช้ตัวดำเนินการวนซ้ำและ '%', ตัวดำเนินการ '+' และตัวดำเนินการ '//' ได้
หมายเลข Harshad เรียกอีกอย่างว่าหมายเลข Niven เป็นตัวเลขที่ฐานเป็นจำนวนเต็มที่หารด้วยผลรวมของตัวเลขเมื่อเขียนเป็นค่าฐานนั้น
ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -
ตัวอย่าง
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
คำอธิบาย
- มีการกำหนดตัวเลข
- ตัวแปรผลรวมอื่นถูกกำหนดเป็น 0
- มีการตรวจสอบจำนวนที่มากกว่า 0 และดำเนินการโมดูลัส
- ผลลัพธ์นี้ถูกเพิ่มใน 'ผลรวม' และตัวเลขจะถูกหารด้วย 10 อีกครั้งชั้น
- หากเศษที่เหลือเมื่อหารจำนวนและผลรวมเป็น 0 ให้ถือเป็นตัวเลขฮาแรด
- มิฉะนั้น จะไม่ถือว่าเป็นตัวเลขฮาชาด