LeetCode Weekly Contest 25 之 507.Perfect Number
2017-03-26 12:49
483 查看
LeetCode Weekly Contest 25
赛题
本次周赛主要分为以下4道题:507 Perfect Number (3分)
537 Complex Number Multiplication (6分)
545 boundary of Binary Tree (8分)
546 Remove Boxes (9分)
507 Perfect Number
Problem:We define the Perfect Number is a positive integer that is equal to the sum of all its positive divisors except itself.
Now, given an integer n, write a function that returns true when it is a perfect number and false when it is not.
Example:
Input: 28
Output: True
Explanation: 28 = 1 + 2 + 4 + 7 + 14
Note
The input number n will not exceed 100,000,000. (1e8)
没有什么难度的题,思路在题目中已经给你了,无非是在遍历条件上做点思考。
My first solution(14ms)
public boolean checkPerfectNumber(int num) { //边界条件 if(num == 0 || num == 1) return false; //第二部分 int sum = 1; for (int i = 2; i * i <= num; i++) { if (num % i == 0){ sum += i + num / i; } } return sum == num; }
注意一些细节,Perfect Number不能由它自己组成,所以排除0和1。num由两个相乘的数分解,所以遍历时只需要遍历num−−−−√个数即可,所以遍历条件为
i*i <= num,注意等于号。
相关文章推荐
- LeetCode Weekly Contest 25 之 545.Boundary of Binary Tree
- LeetCode Weekly Contest 25
- LeetCode Weekly Contest 25 之 537.Complex Number Multiplication
- 【LeetCode Weekly Contest 26 Q2】Longest Uncommon Subsequence II
- 73th LeetCode Weekly Contest Escape The Ghosts
- LeetCode Weekly Contest 37解题思路
- leetcode weekly contest 61 ( 740. Delete and Earn )
- LeetCode Weekly Contest 32 解题报告
- 【LeetCode Weekly Contest 26 Q1】Longest Uncommon Subsequence I
- LeetCode Weekly Contest 42解题思路
- (几何)LeetCode Weekly Contest 32 D-Erect the Fence
- LeetCode Weekly Contest 56 Find K-th Smallest Pair Distance
- 73th LeetCode Weekly Contest Domino and Tromino Tiling
- LeetCode Weekly Contest 24 之 542.01 Matrix
- LeetCode Weekly Contest 40解题思路
- LeetCode Weekly Contest 51
- LeetCode Weekly Contest 28
- LeetCode Weekly Contest 48解题思路
- LeetCode Weekly Contest 32解题思路
- LeetCode Weekly Contest 39