LeetCode 5830 - 三除数

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

# 总结

第一次做周赛只对了这一题😔

第 252 场周赛 (opens new window)