在c语言编程中“求100~200间的全部的素数”为什么会用到开平方呢(附2023年最新排名前十名单)
在c语言编程中“求100~200间的全部的素数”为什么会用到开平方呢(附2023年最新排名前十名单):这是一个数学问题。质数的定义为,除了1和本身,没有其它因子,即没有其它数可以被其整除。对于任意的数n,因子肯定是比n小的数,所以如果m>n,那么m不可能是n的因子。于是最直观的判断……全球排行榜123网(www.meihu5.com)小编为你整理了本篇文章,希望能解对你有所帮助!
这是一个数学问题。质数的定义为,除了1和本身,没有其它因子,即没有其它数可以被其整除。对于任意的数n,因子肯定是比n小的数,所以如果m>n,那么m不可能是n的因子。于是最直观的判断方法就是,从1一直到n计算模除,获取到因子总数,如果总数为2,那么就是质数。这样对于任意的n,判断质数就需要做n次模除。为了使程序优化,可以修改为,对2到n-1做模除,只要有一个可以整除,那么就不是整数。对于这样的算法,可以再次优化。如果n有一个引子m, 那么可以写作n = m*k的形式,那么m和k不可能同时大于n的平方根s。这一点可以用反证法来证明。如果m>s 且k>s那么m*k > s*s于是得到n>n的结论。明显是错误的。于是m和k至少有一个是小于等于s的。这样在判断质数时,只需要从2一直到s做模除,就可以准确的判断是否有其它因子,从而得到是否为质数的结论。这就是为什么在判断质数中的程序中会用到求平方根的原因。其本质原因是为了减少模除次数,提高效率。
声明:本文图片、文字、视频等内容来源于互联网,本站无法甄别其准确性,建议谨慎参考,本站不对您因参考本文所带来的任何后果负责!本站尊重并保护知识产权,本文版权归原作者所有,根据《信息网络传播权保护条例》,如果我们转载内容侵犯了您的权利,请及时与我们联系,我们会做删除处理,谢谢。