歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

質數又稱素數。指在一個大於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