【一天一道Leetcode】丑數(shù)

本篇推文共計2000個字,閱讀時間約3分鐘。
01
題目描述

題目描述:
給你一個整數(shù)n,請你判斷n是否為丑數(shù)。
如果是,返回 true;
否則,返回 false。
丑數(shù)就是只包含質(zhì)因數(shù) 2、3、5的正整數(shù)。
示例 1:
輸入:n = 6
輸出:true
解釋:6 = 2 × 3示例 2:
輸入:n = 8
輸出:true
解釋:8 = 2 × 2 × 2提示:
-2^31 <= n <= 2^31 - 1
02
思路和方法
根據(jù)題目中丑數(shù)的定義,0和負(fù)整數(shù)一定不是丑數(shù)。
當(dāng)n>0時,若n是丑數(shù),則n可以寫成n=2^a*3^b*5^c的形式,其中a,b,c都均為非負(fù)整數(shù)。
當(dāng)a,b,c均為0時,n=1。
我們可以對n反復(fù)執(zhí)行除以2,3,5的操作,直到最后n的值等于1,則說明n不包含其它質(zhì)因數(shù),n為丑數(shù)。
否則n包含其它質(zhì)因數(shù),不是丑數(shù)。
我們可以使用for循環(huán)語句嵌套if條件語句的形式來對n進(jìn)行上述算法操作。

我們的代碼輸出為:
class Solution:
def isUgly(self, n: int) -> bool:
if n <= 0:
return False
factors = [2, 3, 5]
for factor in factors:
while n % factor == 0:
n //= factor
return n == 1
【年終總結(jié)】你好2021,再見2020。

【秋招紀(jì)實錄】一篇特別正經(jīng)的【騰訊】求職經(jīng)驗分享

【一天一道Leetcode】笨階乘
你與世界
只差一個
公眾號
評論
圖片
表情

