歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言經典例題:素數判斷

C語言經典例題:素數判斷

日期:2017/3/1 10:26:47   编辑:Linux編程

質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。

初級版

  1. _Bool Isprimer(unsigned n)
  2. {
  3. if(n<=1)return false;
  4. unsigned i,tem=sqrt(n)+1;
  5. for(i=2;i<=tem;i++) /*2也是素數*/
  6. if(n%i==0)return false;
  7. return true;
  8. }

升級版

  1. _Bool Isprimer(unsigned n)
  2. {
  3. if(n==2)return true;
  4. if(n<=1||n%2==0)return false; /*2以外偶數都不是素數*/
  5. unsigned i,tem=sqrt(n)+1;
  6. for(i=3;i<=tem;i+=2) /*i==2的情況已經在前面判斷過了,這裡直接從3開始,且一個奇數*/
  7. if(n%i==0)return false; /*且進入到這裡的n都是奇數,奇數是不可能被偶數整除的,所以i每次增2*/
  8. return true;
  9. }

希望有更好的算法!

Copyright © Linux教程網 All Rights Reserved