Leetcode204. 计数质数

统计所有小于非负整数 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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值