檢查 Python 中數字偶數位數字的乘積是否能被奇數位數字的和整除


假設我們有一個數字 n,我們需要檢查 n 的偶數位數字的乘積是否能被 n 的奇數位數字的和整除。位數從右到左計數,最右邊的位數為第 1 位。

例如,如果輸入 n = 59361,則輸出為 True,因為 (1*3*5) = (6+9)。

為了解決這個問題,我們將遵循以下步驟:

  • digit_count := 給定數字 n 的位數
  • total := 0, prod := 1
  • 當 n > 0 時,執行以下操作:
    • 如果 digit_count 為偶數,則
      • prod := prod * n 的最後一位數字
    • 否則,
      • total := total + n 的最後一位數字
    • n := (n / 10) 的商
    • digit_count := digit_count - 1
  • 如果 prod 能被 total 整除,則
    • 返回 True
  • 返回 False

讓我們來看下面的實現程式碼,以便更好地理解:

示例程式碼

線上演示

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

更新於:2021年1月16日

491 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.