ปัญหา
ให้ตัวเลขในฐานแปด (Octal) ตรวจสอบว่าค่าทศนิยม (Decimal) ของมัน หาร 7 ลงตัวหรือไม่
ทฤษฎี
เลขฐานแปด: d_k d_{k-1} ... d_1 d_0 = Σ d_i × 8^i
เนื่องจาก 8 ≡ 1 (mod 7) → 8^i ≡ 1 (mod 7)
ดังนั้น ค่าทศนิยม mod 7 = Σ d_i (mod 7) = ผลรวมหลัก mod 7
ตัวอย่าง
Octal 61 → 6×8 + 1 = 49 → 49 mod 7 = 0 → True
ผลรวมหลัก = 6+1 = 7 → 7 mod 7 = 0 ✓
โค้ดตัวอย่าง
def solve(octal_num):
digit_sum = 0
while octal_num > 0:
digit_sum += octal_num % 10
octal_num //= 10
return digit_sum % 7 == 0
print(solve(61)) # True (49 ÷ 7 = 7)
print(solve(123)) # False (83 ÷ 7 = 11.857...)
อินพุต / เอาต์พุต
Input: 61 Output: True