LeetCode 5830 - 三除数
AlightYoung 8/2/2021 LeetCode
简单
原题链接:https://leetcode-cn.com/problems/three-divisors (opens new window)
# 题目描述
给你一个整数 n 。如果 n 恰好有三个正除数 ,返回 true ;否则,返回 false 。
如果存在整数 k ,满足 n = k * m ,那么整数 m 就是 n 的一个 除数 。
示例 1
输入:n = 2
输出:false
解释:2 只有两个除数:1 和 2 。
示例 2
输入:n = 4
输出:true
解释:4 有三个除数:1、2 和 4 。
示例
1 <= n <= 10^4
# Python题解
# 参考题解
结合官方对范围的思路优化后的题解
class Solution(object):
def isThree(self, n):
"""
:type n: int
:rtype: bool
"""
count,i = 0,1
while i**2 <= n:
if n % i == 0:
if i != n // i:
count += 2
else:
count += 1
if count > 3:
return False
i+=1
return count == 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 总结
第一次做周赛只对了这一题😔