LeetCode-507-完美數(shù)

題目描述:對(duì)于一個(gè) 正整數(shù),如果它和除了它自身以外的所有 正因子 之和相等,我們稱它為 「完美數(shù)」。
給定一個(gè) 整數(shù) n, 如果是完美數(shù),返回 true,否則返回 false。
示例說明請(qǐng)見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/perfect-number/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:解法一
添加一個(gè)獲取num所有正因子(除了它本身)的方法calculateAllPrimeFactor,返回值是一個(gè)List,將返回值所有的元素相加,判斷是否等于num,如果相等,返回true;否則,返回false。
calculateAllPrimeFactor方法的邏輯如下:
首先,聲明一個(gè)待返回的List為primeFactor;
如果num等于1,則直接返回primeFactor;
否則,將1添加到primeFactor中;
如果num小于4,則返回primeFactor;
然后從2開始遍歷到num的平方根,如果num能被其整除,則將這個(gè)數(shù)和這個(gè)數(shù)被num除之后的數(shù)添加到primeFactor中。
最后返回primeFactor。
【每日寄語】 抓住現(xiàn)實(shí)中的一分一秒,勝過想像中的一月一年。
標(biāo)簽: