สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าผลคูณของหลักที่ตำแหน่งคู่ของ n หารด้วยผลรวมของหลักที่ตำแหน่งคี่ของ n ได้หรือไม่ สถานที่เริ่มนับจากขวาไปซ้าย ขวาสุดอยู่ที่ตำแหน่งที่ 1
ดังนั้น หากอินพุตเท่ากับ n =59361 ผลลัพธ์จะเป็น True (1*3*5) =(6+9)
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- digit_count :=การนับจำนวนหลัก n
- ผลรวม :=0, ผลิตภัณฑ์ :=1
- ในขณะที่ n> 0, ทำ
- ถ้า digit_count เป็นเลขคู่
- prod :=prod * ตัวเลขสุดท้ายของ n
- มิฉะนั้น
- ผลรวม :=ยอดทั้งหมด + ตัวเลขสุดท้ายของ n
- n :=ผลหารของ (n / 10)
- digit_count :=digit_count - 1
- ถ้า digit_count เป็นเลขคู่
- ถ้า prod หารด้วยผลรวมลงตัว
- คืนค่า True
- คืนค่าเท็จ
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
โค้ดตัวอย่าง
from math import log10 def solve(n): digit_count = int(log10(n))+1 total = 0 prod = 1 while n > 0 : if digit_count % 2 == 0 : prod *= n % 10 else: total += n % 10 n = n // 10 digit_count -= 1 if prod % total == 0: return True return False n = 59361 print(solve(n))
อินพุต
59361
ผลลัพธ์
True