Khi cần xác định số cho trước có phải số Harshad hay không, dùng vòng lặp đơn giản và toán tử '%', '+', '//'.
Số Harshad còn gọi là số Niven. Là số có cơ số nguyên có thể chia hết cho tổng chữ số khi viết dưới cơ số đó.
Minh họa:
Ví dụ
my_num = 134
remaining = sum_val = 0
print("Đang tạo bản sao số cần kiểm tra...")
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) + " là số Harshad")
else:
print(str(my_num_copy) + " không phải số Harshad")
Đầu ra
Đang tạo bản sao số cần kiểm tra... 134 không phải số Harshad
Giải thích
- Định nghĩa số.
- Gán biến tổng = 0.
- Kiểm tra số > 0, thực hiện modulus.
- Kết quả cộng vào 'sum', số chia nguyên 10.
- Nếu dư chia số cho sum = 0 => Harshad.
- Ngược lại không phải.