算法创作|质数计数问题解决方法

问题描述统计所有小于非负整数n的质数的数量。示例:输入:n = 10输出:4示例:输入:n = 1输出:0示例:输入:n = 0输出:0提示:0 <= n <= 5 * 106解决方案对于每个数 i,我们可以枚举 [2, i-1][2,i-1]区间的任意一个数 j,判断i 能否被j整除,枚举 [2, i-1][2,i−1] 区间的任意一个数j,判断i能否被j整除时,我们可以发现,如果i能够被j整除,那么这里的商也一定能够整除i,也就是i也能够被i/j整除。那么我们只要判断i和i/j其中一个能否整除i即可。代码清单 1统计所有小于非负整数n的质数的数量class Solution:def countPrimes(self, n: int) -> int:def is_prime(num):j = 2while j * j <= num:if num % j == 0:return Falsej += 1return Truecount = 0for i in range(2, n):if is_prime(i):count += 1return count运行代码

结语此类方法需要较为麻烦,思维较为复杂,需要单次判断每一个数是否为质数,淡然也可以采取枚举法、线性筛等方法,这些方法可能更容易理解,当我们遇到此类问题时,需迅速构建出各种方法,在这之中筛选,选出更简单的方法。实习编辑:李欣容作者:查萌雨 岳进 赵柔稿件来源:深度学习与文旅应用实验室(DLETA)

(0)

相关推荐

  • 二进制中1的个数问题 (超详细)

    整数 二进制中1的个数 前两天遇到这个问题,第一反应就是%2和>>1这两个操作.   大概思路:   正数:%2,拿到原码(补码)的最右位,对于一个int类型的数进行32次判断,这是比较简 ...

  • 算法创作|神奇语言问题解决方法

    问题描述一位同学正在学习一门神奇的语言,其中的单词都是由小写英文字母组成,有些单词很长,而这位同学一直记不住,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现的最多来分辨单词,现在请帮助这位同学 ...

  • 算法创作|阶梯电价问题解决方法

    问题描述为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯":月用电量50千瓦时(含50千瓦时)以内的,电价为0.53 ...

  • 算法创作 | 二叉树遍历问题解决方法

    问题描述二叉树的先序遍历.中序遍历.后序遍历怎么求?解决方案给你一个二叉树(如图)那么怎么找出它的先序遍历.中序遍历.后序遍历呢?我们先看一个简单二叉树来了解它的概念. 所谓前序,中序,后序就是指根所 ...

  • 算法创作|“画雪人”问题解决方法

    问题描述示例:运用Turtle画出一个戴帽子的雪人在你门前,我堆起一个雪人,代表笨拙的我,把你久等...解决方案掌握turtle库,you can do you want.代码清单 1 DFS求解1到 ...

  • 算法创作|反转链表问题解决方法

    问题描述给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 . ...

  • 算法创作|简单行列式问题解决方法

    前言用Python做线代问题描述大二学习了行列式的部分知识,所以就想能不能用Python计算简单的行列式计算.输入:新建文件夹,建立一个新的Excel,写入图1数据,并重命名这页sheet为计算,并将 ...

  • 算法创作|调手表问题解决方法

    问题描述小明买了块高端大气上档次的电子手表,他正准备调时间呢.在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟.大家都知道,手表只有一个按钮可以把当前的数加一.在调分钟 ...

  • 算法创作 | 0到n-1中缺失的数字问题解决方法

    问题描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字.示例1:输入:[0,1,3 ...

  • 算法创作|找出游戏的获胜者问题解决方法

    问题描述共有 n 名小伙伴一起做游戏.小伙伴们围成一圈,按 顺时针顺序 从 1 到 n 编号.确切地说,从第 i 名小伙伴顺时针移动一位会到达第 (i+1) 名小伙伴的位置,其中 1 <= i ...