求一种简单的办法快速判定一个正整数为素数求一种快速而又一种简单的办法判定一个正整数为素数

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 13:52:46
求一种简单的办法快速判定一个正整数为素数求一种快速而又一种简单的办法判定一个正整数为素数

求一种简单的办法快速判定一个正整数为素数求一种快速而又一种简单的办法判定一个正整数为素数
求一种简单的办法快速判定一个正整数为素数
求一种快速而又一种简单的办法判定一个正整数为素数

求一种简单的办法快速判定一个正整数为素数求一种快速而又一种简单的办法判定一个正整数为素数
既快速又简单的除了用计算机应该没有了,要不科学家们怎么用了那么多年筛选法呢?看看这个吧
印度的三位计算机专家(one Professor 马宁德拉·阿格拉瓦 + two Bachelors 尼拉叶·卡雅尔和尼汀·萨克斯特纳)震惊了数学界,他们为古老的素数判定问题找到了确定的多项式算法,而且令人始料未及的是,他们的判定方法出奇地简单,简单到足以让数学家们警觉起来,启发他们重新审视许多复杂问题的解决方法.
作为除了1和自身外没有其他约数的正整数,数千年来素数一直是数论的基本构件.对于如何判定一个数是否为素数,公元前240年,希腊数学家埃拉托色尼给出了一个一直沿用到今天的方法——“筛选法”.该方法有其局限性,即随着数字的增大,筛选所耗用的时间呈指数增长.如果要判定相当大的自然数,哪怕采用最先进的计算机进行运算,计算时间比宇宙年龄都要长.因此,长期以来,数学家们一直致力于寻找的,就是在可以接受的时间内能够完成的判定方法.
在过去的几十年间,由于素数判定问题被引入了密码学领域,这方面的研究工作变得倍受关注.因为当前的因特网加密程序,主要是基于大数的素因子分解相当困难这一假定.虽然目前有一些高速程序可以给出一个大数是素数的概率,但它毕竟没有彻底解决问题.
印度理工学院计算机科学与工程学系的科学家马宁德拉·阿格拉瓦和他的两位在校本科生尼拉叶·卡雅尔和尼汀·萨克斯特纳在这方面取得了成功.
这三个人的成功主要得益于采用了崭新的思路.其他人的着眼点往往是“这个数是否是素数”,他们却另辟蹊径,将问题转化成关于待判定数的一系列小的问题或“方程”.于是,简单的算法诞生了,只需用13行便可写明.阿格拉瓦解释说:“如果某个数字使所有等式成立,那么它就是素数;否则,便不是.”
卡尔·波默朗斯是美国新泽西州贝尔实验室的素数问题专家,他评论说:“这是一个漂亮的算法,我为之高兴.同时,也很遗憾自己没找到它.他们的方法很简洁,但并不平凡.他们的工作充满智慧.”
英国沃里克大学的数学家和科普作家伊恩·斯图亚特认为,这一理论突破就其本身而言固然重要,但它给人们思路上带来的启发意义更加深远.如果采用它所蕴含的换个角度、化繁为简的思想,对于那些目前处在死胡同中的难题,科学家们也许可以找到解决办法.
因特网安全目前还未因此受到威胁.来自英国一个加密安全公司的本·哈德利说:“相对于原来的概率计算算法,新算法并没有给素因子分解提供好的算法,所以这一新突破对密码安全行业并没有太大的实际影响.”
但是,波默朗斯坚信新算法将使密码学专家担忧.他认为,既然存在简单的素数判定算法,也就很可能存在简单的素因子分解算法,只是我们还没注意到罢了.
这恐怕也正是阿格拉瓦等人研究工作的真正意义所在.两名本科生的毕业项目能产生如此重大的成果,这说明我们很可能忽略掉了更多重大数学问题的简单解答方法.波默朗斯感慨颇深地说:“这是一个提醒,原来我们非常容易忽略掉一些简单的东西.”
素数判定算法
(当且仅当n为素数时,最终输出数才为素数)
lnput:integer n>1
1.if (n is of the form a^b,b>1)output COMPOSITE;
2.R=2
3.while (r

程序解决

0

求一种简单的办法快速判定一个正整数为素数求一种快速而又一种简单的办法判定一个正整数为素数 求一道程序设计题的代码编写:输入一个正整数,判断该正整数是否为素数 C语言 设计并实现一种大素数随机生成方法; 实现一种快速判定任意一个大数是否是素数方法 三个不同的素数相乘为一个正整数,且其平方和是558,求该数. 如何证明埃拉托斯特尼筛法!检查一个正整数N是否为素数,最简单的方法就是试除法,将该数N用小于等于根号N的所有素数去试除,若均无法整除,则N为素数 优化筛选法求素数!高手进!快速查找素数时间限制:1000 ms | 内存限制:65535 KB 难度:3描述 现在给你一个正整数N,要你快速的找出在2.N这些数里面所有的素数. 输入 给出一个正整数数N(N 求一个简单的统计办法有十个人,身高分别为173,171,175,177,180,178,179,174,179,174 cm,请设计一个快速的办法计算出平均身高, VB求输入任意一个正整数,若该数不是一个素数,则找出一个大于它的最小素数. 用matlab写一个判断任意输入的正整数是否为素数的函数文件 素数的判定 C语言 用C语言写输入一个正整数m,判断它是否为素数的程序. c语言实验编求素数的函数从键盘输入一个正整数n(4 急 急 急 定义函数int prime(int n)求一个正整数是否为素数,并在主函数中调用判断一个值是否为素数 C语言找出数组中素数的个数,要求判定是否为素数用函数实现 怎么判断一个正整数是否为素数 流程图 求素数的这个办法是怎么回事?关键不懂sqrt()这个函数的地方…… 求用它来判断是否为素数的原理 谢void prime_number(int n) //判断整数n是否为素数{int i,m,t,s=1; //s是一个标志,s=1表示是素数,s=0 C语言编程题,判断素数.编写一个判断素数的函数,在主函数中输入一个整数,判定是否是素数,并输出是否是素数的信息.要点说明:函数体中若判定“形参”为素数,返回值“1”,否则返回“0”. C++编程实现 求一个正整数数的全部素数因子输出格式为 例如:126=2*3*3*7