跳至主要內容
找素数

素数(也称为质数)的定义是一个大于 1 的自然数,除了 1 和它本身以外,不能被其他正整数整除。换句话说,一个素数只有两个正因数:1 和它自己。 例如,2、3、5、7、11、13、17、19、23 等都是素数,因为它们只能被 1 和它们自身整除。而 4、6、8、9、10 等不是素数,因为它们可以被其他的正整数整除,比如 4 可以被 2 整除,6 可以被 2 和 3 整除,以此类推。 素数在数学中有着重要的地位,特别是在数论领域。许多数学定理和算法都与素数有关,包括著名的费马小定理和欧拉定理。

判断一个数是否为素数: 在 code - 1 中,我们定义了一个名为 is_prime 的函数,它接受一个整数作为参数,并返回一个布尔值,表示该整数是否为素数。如果输入的整数小于等于 1,则不是素数;否则,我们从 2 开始遍历到该整数的平方根,如果该整数可以被任何一个小于它的正整数整除,则不是素数。


王泽权大约 6 分钟CC算法训练
二分查找

给定一个拥有 n 个不同元素的有序(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

当遇到这样的题目时我们就可以采用二分查找来完成,二分查找又称折半查找,是一种常见的查找算法,它的基本思想是将一个有序的数组按照中间值分成两个部分,然后判断目标值与中间值的大小关系,如果相等,则查找成功,如果目标值比中间值小,则在左半部分继续查找,如果目标值比中间值大,则在右半部分继续查找,直到找到目标值或者查找范围为空为止。

二分查找的具体实现过程如下:

  1. 设置查找范围的左右边界 left 和 right,分别指向数组的第一个元素和最后一个元素。

王泽权大约 3 分钟CC算法训练
汉诺塔

汉诺塔是一个经典的益智游戏,源自于印度数学家毕达哥拉斯所提出的问题。该游戏通常由三个柱子和若干个圆盘组成,目标是将若干个圆盘从起始柱子移动到目标柱子(且保持圆盘的排列顺序不变),同时遵守以下规则:

  1. 每次只能移动一个圆盘。
  2. 大圆盘不能放在小圆盘上面。

问题:如果将若干个圆盘从起始柱子 a 移动到目标柱子 c 上?(最少要移动多少次?) 提示:可将圆盘临时置于 b 塔,也可将从 a 塔移出的圆盘重新移回 a 塔,但都必须遵循上述两条规则。


王泽权大约 5 分钟CC算法训练