首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查找1到20之间的质数代码没有返回质数2,正确的算法是什么?

要查找1到20之间的质数,可以使用以下算法:

  1. 创建一个空列表,用于存储质数。
  2. 使用一个循环,从2开始迭代到20。
  3. 对于每个迭代的数字,使用另一个循环来检查它是否为质数。
  4. 在内部循环中,从2开始迭代到当前数字的平方根(取整数部分)。
  5. 对于每个迭代的数字,检查是否能够整除当前数字。如果能够整除,则说明当前数字不是质数,跳出内部循环。
  6. 如果内部循环正常结束(没有找到能够整除的数字),则将当前数字添加到质数列表中。
  7. 完成外部循环后,输出质数列表。

以下是使用Python语言实现该算法的代码:

代码语言:txt
复制
import math

primes = []  # 存储质数的列表

for num in range(2, 21):
    is_prime = True  # 标记当前数字是否为质数

    # 检查当前数字是否能够整除其他数字
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            is_prime = False
            break

    if is_prime:
        primes.append(num)

print(primes)

这段代码会输出1到20之间的所有质数:[2, 3, 5, 7, 11, 13, 17, 19]。

在腾讯云的云计算平台中,可以使用云函数(SCF)来运行这段代码。云函数是一种无服务器计算服务,可以让您无需管理服务器即可运行代码。您可以通过编写一个云函数,将上述代码部署到腾讯云,并通过触发器来执行该函数。具体的腾讯云云函数产品介绍和使用方法,请参考腾讯云云函数官方文档:云函数产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 密码破解指南:20~24

正如你在第 19 章中了解到的,返回值是一个介于0和12之间的整数:回想一下,更大的数字意味着更接近的匹配。...如果余数为 0,num可被i整除,因此不是质数,循环返回False。如果第 17 行上的for循环没有返回False,则该函数返回第 20 行上的True以指示num可能是质数。...用厄拉多塞筛生成质数 primeNum.py模块第 23 行的primeSieve()函数使用厄拉多塞算法的筛子返回一个在1和sieveSize之间的所有质数的列表: def primeSieve(sieveSize...在这一章中,我们编写了isPrimeTrialDiv()函数来判断一个数是否是质数,方法是用 2 和这个数的平方根之间的所有数来修改一个数。这是试除法算法。...有多少质数? 什么叫非质数的整数? 求质数的两种算法是什么?

1.4K30
  • 盛算信息-面试经历-笔试部分-完整题目(一)

    然后,将递增后的a的值(6)与b的值(3)相加,得到最终的结果9。 因此,输出结果为: Result: 9 算法题:求1~100之间的质数 这个太熟了,方法有很多,从慢到快演示。.../ 将key插入到正确位置 arr[j + 1] = key; } } 快速排序(Quick Sort): 原理:选择一个基准元素,将数组分为两部分,一部分小于基准元素,一部分大于基准元素...如果在Cache中没有找到需要的数据,则称为“未命中”,CPU需要从主存中读取数据,并将其存储到Cache中,以供后续访问使用。...二分查找代码实现 这个不难,就是算法导论里面的原题。...while(s[a[i]] > 1) // 一点碰见两个重复的元素后 { s[a[j]] --; // 这里要主要的一点是这个算法是没有回溯的

    6210

    微软面试题解析:丑数系列算法

    首先,「丑数」系列问题属于会者不难难者不会的类型,因为会用到些数学定理嘛,如果没有专门学过,靠自己恐怕是想不出来的。...首先,我在前文 如何高效寻找质数 中也讲过高效筛选质数的「筛数法」:一个质数和除 1 以外的其他数字的乘积一定不是质数,把这些数字筛掉,剩下的就是质数。...根据 二分查找的实际运用 给出的思路模板,我们得到一个单调函数f,想求参数num的最小值,就可以运用搜索左侧边界的二分查找算法了: int nthUglyNumber(int n, int a, int...f(int num, int a, int b, int c) { // 下文实现 } 搜索左侧边界的二分搜索代码模板在 二分查找框架详解 中讲过,没啥可说的,关键说一下函数f怎么实现,这里面涉及容斥原理以及最小公因数...所以我说这种数学问题属于会者不难,难者不会的类型。 更多数学算法参见 如何高效寻找素数,随机算法之水塘抽样算法,常用的位操作,一行代码就能解决的算法题。

    63220

    搜索中常见数据结构与算法探究(一)

    当新元素被读到时,如果它小于数组中的第k个元素则忽略之,否则就将其放到数组中正确的位置上,同时将数组中的一个元素挤出数组。当算法终止时,位于第k个位置上的元素作为答案返回。...,h-1列表Si包含列表Si-1中Entry的随机子集; Si中的Entry是从Si-1中的Entry集合中随机选择的,对于Si-1中的每一个Entry,以1/2的概率来决定是否需要拷贝到Si中,我们期望...o 在上层查找比对过的key,不会再下层再次查找比对,任意一个key被查找比对的概率为1/2,因此内存循环比对的期望次数是2也就是O(1); o 因此最终的时间复杂度函数O(n) = O(1)*O(logn...4.2.4 HashTree · 总述 HashTree是一种特殊的树状结构,根据质数分辨定理,树每层的个数为1、2、3、5、7、11、13、17、19、23、29..... · 数据结构和算法 从...我们选择质数分辨算法来构建一颗哈希树。选择从2开始的连续质数来构建一个10层的哈希树。第一层节点为根节点,根节点先有2个节点,第二层的每个节点包含3个子节点;以此类推,即每层节点的数据都是连续的质数。

    31530

    数学--数论---P4718 Pollard-Rho算法 大数分解

    P4718 【模板】Pollard-Rho算法 题目描述 MillerRabin算法是一种高效的质数判断方法。虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的。...\\虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的。...虽然是一种不确定的质数判断法,但是在选择多种底数的情况下,正确率是可以接受的。PollardRho是一个非常玄学的方式,用于在O(n1/4)的期望时间复杂度内计算合数n的某个非平凡因子。...5 这个题目之考察了计算,没考察分解,我博客里有带输出元素的代码。...(m & 1)) k++, m >>= 1; for (int i = 1; i 20; ++i) // 20为Miller-Rabin测试的迭代次数 {

    68810

    2020-09-20:如何判断一个数是质数?

    福哥答案2020-09-20:#福大大架构师每日一题# 1.试除法。朴素素数筛,埃氏筛,欧拉筛和区间筛。代码采用朴素素数筛。 2.费尔马素性测试法法。...费马小定理:假如p是质数,a是整数,且a、p互质,那么a的(p-1)次方除以p的余数恒等于1,即:a^(p-1)≡1(mod p)。 3.米勒拉宾素性检验法。...二次探测定理:如果p是一个素数,02≡1(mod p)的解为x=1或x=p-1。 4.综合法。试除法+米勒拉宾素性检验。 5.AKS算法。暂时无代码。...return True if num % 2 == 0: return False a = 2 # a是[2,num-1]之间的随机数 if quick_power...米勒拉宾素性检验是一种概率算法 可能会把合数误判为质数。 Args: num: 大于等于2并且是整数。

    83610

    嵌入式基础知识-RSA非对称加密基本原理

    =2x10=20 第四步:选公钥E,需满足以下条件: 可以从小开始选,选E=3,因此公钥为(3, 33) 是一个质数 1<公钥<T 不是T的因子 第五步,计算私钥D,公式为**(DxE)%T=1**,解得...质数的一些性质: 质数p的约数只有两个:1和p 算术基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的 质数的个数是无限的 若n为正整数,在n^2到(n+1)^...2之间至少有一个质数 若n为大于等于2的正整数,在n到n!...之间至少有一个质数 可以写一段代码,求取一定范围的质数,感受一下质数有哪些。 代码怎么写呢?...还是可以看下小学课本: 用Python编写的打印5000以内质数的代码如下: #判断是否是质数:大于1,不等于2,是否为奇数,是否有约数''' def isPrime(num): if num

    81330

    Python|欧拉筛法求质数

    解决方案 当看到这种寻找质数的问题,很多人第一时间想到的便是二重循环暴力查找,如果只找前几个质数,可以使用这种暴力查找的方法。但如果要找第2020个质数,第9999个质数,这种暴力方法就不适用了。...同样以此为思路的还有埃氏筛法,但埃氏筛法具有缺陷:对于一个合数,有可能被筛多次,例如20 = 2*10 = 4*5。...代码: def ouLaShai(n): lis = [True for i in range(n + 1)] # 用于筛选记录合数 lis2 = [] # 存质数...for i in range(2, n + 1): if lis[i]: # 如果没有被筛选就加到Lis2 lis2.append(i)...而到后面的某个质数prime2去筛i * prime2的时候,就有i * prime2 == x * prime * prime2,因而prime和prime2都是i * prime2的质因子。

    1.7K20

    【数据结构与算法】详解什么是哈希表,并用代码手动实现一个哈希表

    、删除元素 、查找元素 等操作 代码简单(其实只需要把哈希函数写好,之后的代码就很简单了) (2)缺点 然后再来讲讲哈希表的缺点: 哈希表中的数据是没有顺序的 数据不允许重复 三、冲突 前面提到了冲突,...isEmpty() 判断哈希表是否为空 size() 返回哈希表内元素个数 resize() 改变哈希表容量,并将数据放到正确的位置上 isPrime() 判断某个数是不是质数 toPrime() 获取离某个数最近的质数...六、用代码实现哈希表 前提: 本文选用链地址法解决冲突问题 涉及到常量的地方,都选用质数,例如哈希表容量 、霍纳算法的常量等。...若有数据,则遍历该索引上的数组每个元素,比对每个元素的 key 是否与我们传入的 key 相等,若有查询到相等的值,则返回该值的 value 若无数据,则返回 false 思路和代码都比较简单,我们直接来看代码...若没有查询到相等的值,则返回 false ,表示删除失败 我们来看一下代码 function HashTable() { // 属性 // 用于存储数据 this.storage = [

    2.6K30

    ☆打卡算法☆LeetCode 204. 计数质数 算法解析

    一、题目 1、算法题目 “给定整数n,返回所有小于整数n的质数的数量。” 题目链接: 来源:力扣(LeetCode) 链接: 204....计数质数 - 力扣(LeetCode) 2、题目描述 给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。...示例 2: 输入: n = 0 输出: 0 二、解题 1、思路分析 题意要求出所有小于整数n的质数的数量。 统计质数数量有很多方法,直观的思路是枚举每个数判断是不是质数。...进一步思考,只需要校验y和\frac{x}{y}之间的较小值,较小值会落在 [2,\sqrt{x}] 的区间中,因此只需要枚举 [2,\sqrt{x}] 区间中中的所有数即可。...判断素数的方法参考定义,对于某个数字 n,i 从 2 开始枚举判断是否满足 n % i == 0 ,如果找到了 n 的因子,就返回 false。 注意 i 遍历到最大 \sqrt{n} 即可。

    60020

    二分查找与二分答案(4)

    考虑到分数一共有ΣPi-N个,所以这个算法的时间复杂度是O((ΣPi-N)log(ΣPi-N))。根据题目给出的数据范围,大约能通过70%的数据 思路2  把每一个分母Pi都看成一个单独的数组。...首先假设我们有一个[0,1]之间的浮点数x,比如x=0.5,那么对于一个质数Pi,我们很容易求出“以Pi为分母的分数中,有几个分数小于等于x”。...既然cnt(x)是递增函数,我们就可以用二分查找的算法,找到一个x满足cnt(x) 等于K。这里的K就是题目里我们求第K小分数的K。...考虑到题目的范围,二分的次数大概是log(P^2)=2log(P)次,其中P是Pi的最大值。因为P1和P2是其中最大的两个质数,那么任意两个分数的差不会小于1/(P1×P2)。...而查找范围从1缩小到1/(P1×P2),每次缩小一半,总共缩小的次数不多于log(P1×P2)+1次  说回程序,考虑到之前伪代码中Cnt函数和Max-Leq函数有类似的循环代码。

    647100

    脑洞:如何用一个整数来表示一个列表?

    建议列表元素使用从 1 到 10 之间的数字。如果使用比较大的数字,则 append 和 access 可能会花费很长时间。...(l)) Out[19]: [2, 5] In [20]: access(l, 0) Out[20]: 2 In [21]: access(l, 1) Out[21]: 5 In [22]: l...请注意,对于 Python3,这是正确的,但对于 Python2 则不然。对于 Python2,int 是固定大小的。...请注意,跟使用 return 并将状态变量作为参数相比,使用 yield 没有区别(通常足以获得最后一个返回的元素)。这有点像 Continuation Passing Style。...也类似于平常的使非尾递归函数尾递归的累加器。如果你从未听说过累加器技巧,这里有一些链接[1] 、[2] 。我未来可能会在没有它们的语言中,写模仿迭代器的东西。

    54320

    算法(简单)_搜索二维矩阵&分解质因数

    搜索二维矩阵 难度:简单 描述: 写出一个高效的算法来搜索 m × n 矩阵中的值。 这个矩阵具有以下特性: 每行中的整数从左到右是从小到大排序的。 每行的第一个数大于上一行的最后一个整数。...样例: [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] 给出 target = 3,返回 true 题目分析: 双循环找出是否有这个值...百度百科:质因数 描述: 将一个整数分解为若干质因数之乘积 你需要从小到大排列质因子 样例: 给出 10, 返回 [2, 5] 给出 660, 返回 [2, 2, 3, 5, 11] 题目分析: 从小到大排列质因子...比如:20 可以被 2 整除两次。 提示:需要两层循环。...代码: // 分解质因数 const primeFactorization = function(num) { let res = []; // 不需要判定i是否为质数,如果i不为质数,且能整除

    36530

    以为是高性能神仙算法,一看源代码才发现...

    这么大范围的数字里面,让你去找两个质数。你说,这 TM 怎么找? 所以,Python的这个 rsa 库,里面是使用了什么神仙算法,能够快速找到这两个质数的?于是我去阅读了它的源代码[1]。...但这段代码我们可以先跳过,因为在昨天的文章里面,我们没有指定 poolsize参数,所以它使用默认值1.于是代码运行到第767行,通过gen_keys函数来生成p 和 q。...,然后,使用is_prime判断它是不是质数,如果是,返回这个数。...在 到 这么大的范围里面随机选奇数?这要选多少年才碰得上两个质数啊? 为了解决这个疑惑,我们来看一下素数定理[2]。 对于正实数 ,定义π(x)为素数计数函数,亦即不大于x的素数个数。...参考资料 [1] 源代码: https://github.com/sybrenstuvel/python-rsa [2] 素数定理: https://zh.wikipedia.org/wiki/%E8%

    84520

    有限域的基本概念和质数、不可分解多项式的搜寻算法

    例如GF(2^2)中的所有四个元素,可以用{0,1,x,x+1}四个多项式来表示,而且需要注意到这些多项式系数不是1就是0,这样多项式中的每一个degree项就对应了二进制的每一个bit的权重,而系数就对应了这个...4.那么N-1个整数的质数和合数就都分别得到了正确的标记。 这种方法的原理比较直白,如果一个正整数N是合数,那么在前面的N-2轮Sieving中,肯定会被标记为合数。...质数搜索算法的改进 仔细研究的话,上面描述的方法中有很多步骤是冗余的,可以精简。例如步骤2在用程序实现算法时,本来是个从2到N的循环。但是从2开始没有必要,可以从当前质数的平方开始,直到N循环结束。...因为当前质数为2时,可以看出,4、6、8将被标记为合数。这样下一个质数3的倍数循环中,可以直接从9开始循环,前面的6已经没有必要再次计算了。质数越大,减少的计算次数越多。...质数搜索算法的TCL源代码 作者用数字前端工程师最爱的TCL脚本分别实现了原版和简化版的代码,放在了作者的github[2],感兴趣的可以看看。不过没有怎么关注计算时间的比较。

    2.1K10

    2019 C++开发工程师面试题大合集

    (一)2018.4 拼多多实习服务端 1、 一个C++源文件从文本到可执行文件经历的过程 对于C/C++编写的程序,从源代码到可执行文件,一般经过下面四个步骤: 1).预处理,产生.ii文件 2).编译...2)#include "",认为它是非系统头文件,非系统头文件的查找通常开始于源文件所在的路径。查找范围大于。...这两种方式分配的都是虚拟内存,没有分配物理内存。在第一次访问已分配的虚拟地址空间的时候,发生缺页中断,操作系统负责分配物理内存,然后建立虚拟内存和物理内存之间的映射关系。...程序代码区:存放程序的二进制代码 SGI 版本STL的默认配置器std::alloc 参见:《STL源码剖析》 1)考虑到小型区块所可能造成的内存碎片问题,SGI设计了双层配置器。...20、手撕代码:1)给定一个数字数组,返回哈夫曼树的头指针。2)最长公共连续子序列。

    1.6K41

    深入了解 useMemo 和 useCallback

    2. 示例1:大量的计算 假设我们正在构建一个工具来帮助用户查找 0 到 selectedNum 之间的所有素数,其中 selectedNum 是用户提供的值。...使用 for 循环,我们手动计算 0 到 selectedNum 之间的所有素数。我们呈现一个受控制的数字输入,因此用户可以更改 selectedNum 。我们向用户显示我们计算的所有质数。...而且,虽然有比我上面使用的更有效的质数检查算法,但它总是需要大量的计算。 有时我们确实需要执行这个计算,比如当用户选择一个新的 selectedNum 时。...因为时间每秒改变一次,这意味着我们不断地重新生成质数列表,即使用户选择的数字没有改变!!!」 在 JavaScript 中,我们只有一个主线程,我们通过一遍又一遍地运行这段代码让它非常繁忙,每一秒。...我们构造一个全新的 boxes 数组,并将其传递给我们的 Boxes 组件。从而导致盒子重新渲染,因为我们给了它一个全新的数组。盒子数组的结构在渲染之间没有改变,但这无关紧要。

    9.1K30
    领券