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

我想从用户那里获取数字,然后打印它是否质数,但是我找不到错误,结果总是不是质数,那么有什么问题呢?

在这个问题中,你想从用户那里获取一个数字,并判断它是否为质数,但是你发现无论输入什么数字,结果总是不是质数。这种情况下可能存在以下几个问题:

  1. 输入数据类型错误:首先,你需要确保你从用户那里获取的数字是一个整数类型,而不是其他类型(如字符串)。如果你的程序没有正确处理输入数据类型,那么无论用户输入什么,结果都会不正确。
  2. 输入数据范围错误:质数是大于1的自然数,因此你需要确保用户输入的数字大于1。如果用户输入的数字小于等于1,那么结果总是不是质数。
  3. 质数判断算法错误:你的程序可能存在质数判断算法的错误。常见的质数判断算法有试除法和埃拉托斯特尼筛法等。你需要仔细检查你的算法实现,确保它能正确地判断一个数字是否为质数。
  4. 循环条件错误:在你的程序中,可能存在循环条件错误导致无法正确判断质数。你需要检查你的循环条件是否正确,以确保你的程序能够正确地遍历所有可能的因子。
  5. 输出逻辑错误:最后,你需要检查你的输出逻辑是否正确。如果你的程序在判断一个数字为质数时输出了错误的结果,那么可能是输出逻辑有误。

针对以上问题,你可以逐一排查并修复。如果你需要更具体的帮助,可以提供你的代码或更详细的描述,以便我们能够给出更准确的答案。

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

相关·内容

javascript 判断一个数字是否质数实现方式若干 by FungLeo

,知道,数字尾数为双数,或者为5,那么肯定不是质数,因此没必要去计算.我们再来优化一下 不计算数字尾数为双数或者5的数字 function isPrimeNum(num){ if (!...如果不是数字或者整数的处理 如果用户输入的不是数字,或者是一个小数,怎么办?迅速的写了两个方法来进行处理… function isPrimeNum(num){ if (!...了解更多请阅读之前的博文《javascript 学习小结 JS装逼技巧(一) by FungLeo》 这并没有提高什么效能,只是免去了计算错误输入.我们再想一下,有没有什么快速判断不是质数的方法?...false : true; } 这里,我们先把数字变成字符串,然后把字符串每一位都分拆出来,并且相加求和,拿结果和3求余,就能得出这个数字是否能被3整除了....去除的优化代码之后的测试结果 又是判断位数是否是双数或者5的,又是判断加起来能不能被3整除的,折腾半天.肯定是期望减少运算量的.但是这些代码本身也是运算量的.的代码都去除掉之后再看下 性能又得到了提升啊

89910

【python入门系列课程 第九课 循环的好帮手break和continue】

知道break和continue怎么用后,那么怎样在实际中发挥的一个作用?...解释: 程序开始获取输入的一个数字,先看这个数字是否大于1,如果不符合条件就直接 打印不是质数。...如果符合初始大于1的条件后,接着用该数字除以2到比它本身小 1 的所有数,if条件来判断每个数字,看是否能够除尽,可以就进入if里面的语句块,打印几乘以几是12,12不是质数。...全部循环结束后又进入else里面,所以后面又出现12是质数的情况的,那要如何避免出现这种错误,使用break就可以解决了。...解释: 这里将原来的等于0改成不等于0了,如果不等于0就继续判断下一个数字,全部都不等于0,进入else,打印不是质数;否则打印几乘以几是12,12不是质数

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

    我们可以做到快速检查一个数是不是质数但是我们现在还做不到直接生成一个质数那么问题来了,RSA 算法中生成密钥时,需要的这两个质数,到底是怎么来的?...这么大范围的数字里面,让你去找两个质数。你说,这 TM 怎么找? 所以,Python的这个 rsa 库,里面是使用了什么神仙算法,能够快速找到这两个质数的?于是去阅读了的源代码[1]。...结果吓得一身冷汗。...如果不是质数,继续随机生成一个 nbit 的奇数,再判断它是不是质数。 这 TM 在逗我?在死循环里面随机生成奇数,然后判断是不是质数不是就重试直到随机到一个质数为止?...那么随机选一个数字不是质数的概率是99.86%。我们来计算一下,如果随机选10000个数字,即使在不考虑奇偶性的情况下: 也就是说,在随机10000个数字里面,不出现质数的概率是一千万分之一。

    83920

    c++第n小的质数_形形色色的素数 -- 质数定理

    欧几里得给出过一个很漂亮的反证法的证明,相信很多人都看到过,不再赘述。知道质数有无穷多个后,我们可以追问:质数的分布情况如何?而这其中最基础的问题就是前n个整数里,多少个质数?  ...总之分子都是质数,分母都是分子减一。这样 ,每一项的小数值都是1.x,并且越来越小,且接近于1。那么这些数字相乘之后,能否可以达到任意大?  ...当然你会发现,分母上的1.08366不是一个主要因素,主要因素大致是说前x个自然数中,   个质数。加入这个1.08366,显然就是为了让结果更接近实际情况。  ...你可能会问,既然是   的积分,为什么不找出的原函数,这样   就不用积分符号,岂不是更好?  ...但是第一次翻转的位置是如此遥远,以至于人类至今没有找到。  有关质数定理的内容,说了不少了,再说说几个有关质数分布未能解决的命题:  孪生质数猜想:是否有无穷多对质数相差2

    1.3K00

    永强接着教你加解密:非对称篇(四)

    没想到除了西方国家的财富外,属于全人类的知识也会两极分化 其实今天的话题和质数真的有关系,如果你要也不知道质数是什么了,趁着过年还在老家,赶紧去找你小学数学老师去问问,然后你就可以精通质数了。...=17,然后令N=p*q,即N=221 令L为p-1(12)和q-1(16)的最小公倍数,即L=48 有数字E,E需要满足如下条件:1 < E < L(L=48)、E和L最大公约数为1,凭信仰选了一个...{E,N}即{5,221}就是公钥,{D,N}即{29,221}就是私钥 那么,我们将这两个数字代入到RSA加密和解密的工程中去尝试一把。...由于结果太大,很多计算器一般都是直接GG。...那么,我们在数学理论中那一大坨p、q、e、d、n这些数值是如何体现的

    44810

    Hashcode的作用_冻干粉的作用与功效

    同时,数字31一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能:31 * i == (i << 5) - i,现代的 Java 虚拟机可以自动的完成这个优化。...-------仅计算公式中次数最高的那一项----------- 首先,假设 n = 6,然后质数2和 n 带入上面的计算公式。结果是2^5 = 32,是不是很小。...也就是说,哈希值会分布在一个较小的数值区间内,分布性不佳,最终可能会导致冲突率上升,质数2做为乘子会导致哈希值分布在一个较小区间内 那么如果用一个较大的大质数101会产生什么样的结果?...(2)但是如果两个类相同的HashCode,例如9除以8和17除以8的余数都是1,也就是说,我们先通过 HashCode来判断两个类是否存放某个桶里,但这个桶里可能有很多类,比如hashtable,那么我们就需要再通过...当然这是开玩笑的,2.68 不可以,3 可不可以?肯定也是不可以的,前面说了,如果不是2的幂次方,散列结果将会大大下降。导致出现大量链表。那么可以将初始化容量设置为4。

    1.9K20

    Python 密码破解指南:20~24

    与试除法算法不同,该算法可以快速处理非常大的数字。该函数不是直接调用,而是由isPrime()调用。 isPrime():在用户必须判断一个大整数是否质数时调用。...但是一个几百位数的大整数? 如果我们将一个大整数传递给isPrimeTrialDiv(),需要几秒钟来判断它是否质数。...Rabin-Miller 算法不是素性的可靠测试。相反,找到很可能是质数但不保证是质数数字但是假阳性的几率很小,这种方法对于本书来说已经足够好了。...第 90 行调用rabinMiller()函数判断数字是否质数然后,rabinMiller()函数获取的返回值,并从isPrime()函数返回: # If all else fails,...第 56 行打印一个空行,然后第 57 行为用户打印关于公钥的信息。

    1.4K30

    Python3 初学实践案例(11)判断质数以及计算一个数字的质因数

    判断是否质数之前用 js 写过,详情参见:http://blog.csdn.net/FungLeo/article/details/51483844 计算质数的关键是要减少运算量。...如果傻,就从1循环到这个数字来进行全量循环计算。聪明一点就不需要了,只需要循环到这个数字的平方根的数字即可。 之前在 js 中就是这么干的。...然后把计算质因数也改成了这种乘法运算,抛弃了原来的计算平方根的算法。 检查输入是否数字 在第一步中,我们就需要用户输入一个数字。这里我们使用 python 自带的 input 方法获取用户的输入。...但是用户输入的不一定是一个数字,所以需要进行校验,如果不正确的话,就必须重新输入。 一开始是用的递归的方式来进行处理,但是发现这样如果 return 处理不好就会很麻烦。...最后,看下执行结果以及运算效率: 上图是几个很小的数字的运算的结果,顺便演示了传参和后输入数字结果。 从结果我们可以看到这个质数是非常大的,但是运算还是很快就结束了。

    45820

    原 GetHashCode重写指南(译文)

    如果一个hash表中的对象的hash值改变了,很明显包含方法将不能正常工作,你把这个对象放到5号桶中,然后hash值突变,在使用contain方法判断对象是否存在时,它就到74号桶里查找,自然是找不到的...归类为 "指南" 而不是 "规则", 因为它是如此含糊。什么才叫慢?这由你来决定。...十多年前, 为 msn.com 后端服务器使用的表编写了一个字符串哈希算法。认为这是一个合理的随机分布的算法, 但我犯了一个错误, 它不是。...结果是, 所有10万由五个字符, 并且只包含数字的字符串, 总是被哈希到600个桶中的其中5个。msn.com 的人使用的表试图快速查找数以万计的美国邮政编码, 所有这些代码都是五位数的字符串。...Security issue:如果你的hash数据是根据外部数据产生,那可能会有安全问题 当我的算法出现问题时,幸运的是msn.com上的那个页面交互的数据少,但是假定那个页面是从用户那里收集数据,然后存在

    1.1K60

    为什么String选择数字31作为hashCode方法乘子?

    背景 某天,在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。...但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。 2....首先,假设 n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。

    85520

    Python3 判断质数以及计算一个数字的质因数

    如果傻,就从1循环到这个数字来进行全量循环计算。聪明一点就不需要了,只需要循环到这个数字的平方根的数字即可。 之前在 js 中就是这么干的。...上面的代码是从网上找到的,仔细看了一下,这段代码真的是绝顶聪明。因为循环到平方根,和循环数字用乘法递增,显然后者的运算量要小很多。...然后把计算质因数也改成了这种乘法运算,抛弃了原来的计算平方根的算法。 检查输入是否数字 在第一步中,我们就需要用户输入一个数字。这里我们使用 python 自带的 input 方法获取用户的输入。...但是用户输入的不一定是一个数字,所以需要进行校验,如果不正确的话,就必须重新输入。 一开始是用的递归的方式来进行处理,但是发现这样如果 return 处理不好就会很麻烦。...上图是几个很小的数字的运算的结果,顺便演示了传参和后输入数字结果。 ? 从结果我们可以看到这个质数是非常大的,但是运算还是很快就结束了。

    2.5K30

    SQL 找出 100 以内的质数

    之前写了一篇文章 SQL 生成斐波那契数列,在原来的基础上,今天就来实现使用 SQL 获取 100 以内的质数。 先来看下质数的定义(以下定义摘选自百度百科): 质数又称素数。...的数去整除 n,如果能被整除,则说明 n 是合数,否则该数是质数。 那具体到 SQL 里该怎么实现?...第 1 步,生成 2 - 100 的自然数列 如果你已经了一张数字辅助表,那么可以从这张辅助表中获取 2 - 100 的自然数列。如果什么都没有,则使用下面的脚本就能生成 2 - 100 的数。...第 2 步,找到质数 假如我们要判断 seq 表中的 31 是不是质数,只需检查 seq 表中从 2 - 5 可以整除 31 的多少个,如果一个也没有,则说明 31 是质数。...EXISTS (SELECT NULL FROM seq b WHERE b.num <= SQRT(a.num) AND a.num % b.num = 0) 打印出来的结果

    1.4K40

    为什么String的hashCode选择 31 作为乘子?

    但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。...首先,假设n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。...同时,数字31一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能:31 * i == (i << 5) - i,现代的 Java 虚拟机可以自动的完成这个优化。

    42700

    面试官:你看过String的hashCode源码吗?

    然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。...首先,假设n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。...同时,数字31一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能:31 * i == (i << 5) - i,现代的 Java 虚拟机可以自动的完成这个优化。

    2K10

    科普:为什么 String hashCode 方法选择数字 31 作为乘子

    然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是从源码中发现了一个奇怪的数字,也就是本文的主角 31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。...那么到底是哪样? 在接下来章节里,请大家带着好奇心和我揭开数字 31 的用途之谜。...首先,假设 n=6,然后质数 2 和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是 2^5=32,是不是很小。...上面说了,质数 2 做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数 101 会产生什么样的结果 ? 根据上面的分析,想大家应该可以猜出结果了。...同时,数字 31 一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能: 31*i==(i<<5)-i,现代的 Java 虚拟机可以自动的完成这个优化。

    79210

    面试官问:为什么String的hashCode选择 31 作为乘子?

    某天,在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是从源码中发现了一个奇怪的数字,也就是本文的主角31。...这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。在看完资料后,默默的感叹了一句,原来是这样啊。那么到底是哪样?...上面说到,31是一个不大不小的质数,是优选乘子。那为啥同是质数的2和101(或者更大的质数)就不是优选乘子,分析如下。 这里先分析质数2。首先,假设 n=6,然后质数2和 n 带入上面的计算公式。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。...同时,数字31一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能:31*i==(i<<5)-i,现代的 Java 虚拟机可以自动的完成这个优化。

    32250

    为什么String的hashCode选择 31 作为乘子?

    但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。...首先,假设n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。...同时,数字31一个很好的特性,即乘法运算可以被移位和减法运算取代,来获取更好的性能:31 * i == (i << 5) - i,现代的 Java 虚拟机可以自动的完成这个优化。

    1.3K40

    科普:为什么 String hashCode 方法选择数字 31 作为乘子

    1.背景 某天,在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。...但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。 2....首先,假设 n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。

    40210

    科普:String hashCode 方法为什么选择数字31作为乘子

    背景 某天,在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。...但是从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心,到网上去找资料查询一下。...那么到底是哪样?在接下来章节里,请大家带着好奇心和我揭开数字31的用途之谜。 2....首先,假设 n = 6,然后质数2和 n 带入上面的计算公式。并仅计算公式中次数最高的那一项,结果是2^5 = 32,是不是很小。...上面说了,质数2做为乘子会导致哈希值分布在一个较小区间内,那么如果用一个较大的大质数101会产生什么样的结果?根据上面的分析,想大家应该可以猜出结果了。

    1.7K190

    python 基础知识第6讲:条件语句控制练习题集合

    需求:获取用户输入的任意数,判断是否质数 分析:质数就是只能被1和它本身整除 代码: # 让用户输入一个任意数字 num = int(input("请输入一个数字:")) # 定义一个变量用来作余数的判断...--- 在控制台输出图形,第一行输出一个,第二行输出二个,第n行输出n个 分析:通过2个循环嵌套打印输出 代码1:正序输出: # 让用户输入一个数字,用来控制显示的行数 num=int(input...break 代码2: 猜数字游戏 随机1 - 10个数字,如果猜对正确,如果没有猜对错误用户9次机会,最终结果要求用户一次都猜不对 1 2 3 4 5 6 7 8 9 10 9次机会 思路:...可以先拿到用户猜过的数字可以随机一个数字,去和用户猜过的数字作比对。...那么这个数字就是我们需要的答案 代码: import random # 定义一个列表 目的:用来存储用户猜过的数字 lst = [] i = 0 while i < 9: number =

    92310
    领券