首页
学习
活动
专区
工具
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
  • 微软面试题解析:丑数系列算法

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

    62120

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

    当新元素被读到时,如果它小于数组中第k个元素则忽略之,否则就将其放到数组中正确位置上,同时将数组中一个元素挤出数组。当算法终止时,位于第k个位置上元素作为答案返回。...,h-1列表Si包含列表Si-1中Entry随机子集; Si中Entry是从Si-1Entry集合中随机选择,对于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是一种特殊树状结构,根据质数分辨定理,树每层个数为12、3、5、7、11、13、17、19、23、29..... · 数据结构和算法 从...我们选择质数分辨算法来构建一颗哈希树。选择从2开始连续质数来构建一个10层哈希树。第一层节点为根节点,根节点先有2个节点,第二层每个节点包含3个子节点;以此类推,即每层节点数据都是连续质数

    30630

    数学--数论---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测试迭代次数 {

    67910

    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是一个素数,0<x<p,则方程x^21(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并且是整数。

    83410

    嵌入式基础知识-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正整数,在nn!...之间至少有一个质数 可以写一段代码,求取一定范围质数,感受一下质数有哪些。 代码怎么写呢?...还是可以看下小学课本: 用Python编写打印5000以内质数代码如下: #判断是否是质数:大于1,不等于2,是否为奇数,是否有约数''' def isPrime(num): if num

    50630

    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.6K20

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

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

    2.5K30

    ☆打卡算法☆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} 即可。

    59520

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

    建议列表元素使用从 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] 。我未来可能会在没有它们语言中,写模仿迭代器东西。

    53920

    二分查找与二分答案(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函数有类似的循环代码

    642100

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

    搜索二维矩阵 难度:简单 描述: 写出一个高效算法来搜索 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不为质数,且能整除

    36130

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

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

    2.1K10

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

    这么大范围数字里面,让你去找两个质数。你说,这 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%

    83920

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

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

    1.5K41

    算法学习】求得一定数值范围内所有质数

    引子 在面试过程当中,经常会遇到一些算法相关问题,比如:求100以内所有质数。 今天我们由这个问题入手,探讨一下算法用处。 1、概念 质数(prime number)又称素数,有无限个。...质数定义为在大于1自然数中,除了1和它本身以外不再有其他因数。 2算法设计 假设要判断数值为n,只需对除数进行遍历,从2n-1即可。...考虑如下三个问题: 算法是否正确算法复杂度如何? 算法能否改进? 2.1 算法是否正确? 从打印出来结果来看,全是质数算法结果没有问题。 2.2 算法复杂度如何?...4、算法优化二 之前计算中,除数是循环到了n-1,其实并没有必要,因为当除数达到n/2时,就已经到了整除n极限了,当除数超过 n/2 + 1时,无论如何也不能将n整除了。...该问题计算思路,可以转换为:计算数值n下所有约数中,除了1和自身外,是否还存在其它数值,如果没有,就是质数。当 x^2 = n 即为约数集中最中间数值,其它约数都分布在x两边。

    46520

    python每日一练(6)

    (1)找质数因子 输入一个正整数,输出它所有质数因子(如180质数因子为 22、3、3、5。...#先通过固定数值来查找质数因子 a = 180 #设置除数起始值 y = 2 #创建一个空列表S存储所有的质数因子 S = [] # 通过while循环取出所有的质数因子 while a !...1 print(S)#通过在循环内部可以观察每个质数因子增加过程 #通过打印最终结果[2, 2, 3, 3],少了一个质数因子5 #我们根据循环过程可以知道最后循环结束以后...for i in range(2, n+1): # 遍历2n之间所有数 while n % i == 0: # 当n可以整除i时 factors.append(i) #...创建一个空列表factors,用于存储n所有质因子。 使用for循环,遍历2n+1之间所有数字。因为一个数质因子最大为它平方根,所以从2开始遍历即可。

    12810
    领券