zoukankan      html  css  js  c++  java
  • 求质数的方法解析

    质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其它自然数整除的数。换句话说,仅仅有两个正因数(1和自己)的自然数即为素数。

    比1大但不是素数的数称为合数。1和0既非素数也非合数。合数是由若干个质数相乘而得到的。

    所以。质数是合数的基础,没有质数就没有合数。


    求素数的方法有非常多种。最简单的方法是依据素数的定义来求。对于一个自然数N,用大于1小于N的各个自然数都去除一下N。假设都除不尽。则N为素数,否则N为合数。
    可是。假设用素数定义的方法来编制计算机程序。它的效率一定是很低的。当中有很多地方都值得改进。
    第一,对于一个自然数N。仅仅要能被一个非1非自身的数整除,它就肯定不是素数,所以不
    必再用其它的数去除。
    第二,对于N来说,仅仅需用小于N的素数去除就能够了。

    比如。假设N能被15整除,实际
    上就能被3和5整除,假设N不能被3和5整除。那么N也决不会被15整除。


    第三。对于N来说。不必用从2到N一1的全部素数去除,仅仅需用小于等于√N(根号N)的全部素数去除就能够了。这一点能够用反证法来证明:
    假设N是合数,则一定存在大于1小于N的整数d1和d2,使得N=d1×d2。


    假设d1和d2均大于√N,则有:N=d1×d2>√N×√N=N。
    而这是不可能的,所以,d1和d2中必有一个小于或等于√N。

  • 相关阅读:
    蓝桥杯--2012--奇怪的比赛(全排列)
    mysql数据库读写分离教程
    Linux中安装java JDK
    mysql数据库主从复制教程
    mysql数据库安装教程
    http报文详解
    查看磁盘I/O命令iostat详解
    linux如何查看服务器当前的并发访问量
    Another app is currently holding the yum lock; waiting for it to exit...
    linux清理缓存cache
  • 原文地址:https://www.cnblogs.com/gavanwanggw/p/6761517.html
Copyright © 2011-2022 走看看