C++素数判断法

来源:互联网 发布:来分期可以在淘宝套现 编辑:程序博客网 时间:2024/06/06 12:48

转自:http://www.cnblogs.com/wuzhenbo/archive/2012/04/26/2470357.html

思路:判断一个整数n是否为素数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。

判断定理:“n不能够被不大于根号n的任何素数整除,则n是一个素数”

用代买表示如下:

int is_prime = trure;

int i = 2;

while (i <= (sqrt(n)))  // 当i小于n的平方根时

{            

   if (n % i  == 0)  // 如果i处以n等于0,

    is_prime == false;  // i不是素数

  i++;        // 把i加1

}

 优化:

  这个程序可以在找到第一个余数为0的数之后,即使推出循环,而不是继续循环下去,那只会浪费CPU资源。

 

int is_prime = trure;

int i = 2;

while (i <= (sqrt(n)))  // 当i小于n的平方根时

{            

   if (n % i  == 0)  // 如果i处以n等于0,

  {

    is_prime == false;  // i不是素数

    break;        // 不是素数,立即结束循环。

  }

  i++;        // 把i加1

}

}

0 0
原创粉丝点击