周賽342。

題目

輸入正整數n,找到閉區間[1,n]之間有哪些整數可以被3,5或7整除。

回傳所有可被整除整數的總和

解法

遍歷所有數i,暴力嘗試是否能被3,5,7任一整除。若可整除則將i加入答案。

時間複雜度O(N)。空間複雜度O(1)。

class Solution:
    def sumOfMultiples(self, n: int) -> int:
        
        def ok(x):
            for div in [3,5,7]:
                if x%div==0:
                    return True
            return False
            
        ans=0
        for i in range(1,n+1):
            if ok(i):
                ans+=i
                
        return ans

歡樂一行版本。

class Solution:
    def sumOfMultiples(self, n: int) -> int:
        return sum(i for i in range(1,n+1) if any(i%div==0 for div in [3,5,7]))