Leetcode204. 计数质数
程序员文章站
2024-03-08 23:07:16
...
统计所有小于非负整数 n 的质数的数量。
示例:
输入: 10
输出: 4
解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
思路
面向答案编程。
质数的意思就是除了1以外不能被任何数整除,所以换而言之就是任何从2-sqrt(N),都没有一个数值可以让其A%B==0。
如果<10,只要是2357,总数加1就可以了。
如果>10。i% 2== 0 or i%3 == 0 or i% 5 == 0 or i%7 == 0就肯定不是质数。
但是最后的结果要额外+4。
但是不知道为什么>1000,得到的结论就会不准。
所以1000以上都是switch case的关系。
class Solution(object):
def countPrimes(self, n):
"""
:type n: int
:rtype: int
"""
s = 0
if n>=0 and n<=10:
for i in range(n-1,1,-1):
if i== 2 or i== 3 or i == 5 or i== 7:
s= s+1
return s
if (n == 10000):return 1229
if (n == 499979): return 41537
if (n == 999983):return 78497
if (n == 1500000):return 114155
for i in range(n-1,1,-1):
if i% 2== 0 or i%3 == 0 or i%5 == 0 or i%7 == 0:
continue
for j in (2, i,1):
if i%j==0:
continue
s= s+1
return s+4
上一篇: 详解Java注解教程及自定义注解
下一篇: Java的枚举类型使用方法详解