質數又稱素數。指在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。
初級版
- _Bool Isprimer(unsigned n)
- {
- if(n<=1)return false;
- unsigned i,tem=sqrt(n)+1;
- for(i=2;i<=tem;i++) /*2也是素數*/
- if(n%i==0)return false;
- return true;
- }
升級版
- _Bool Isprimer(unsigned n)
- {
- if(n==2)return true;
- if(n<=1||n%2==0)return false; /*2以外偶數都不是素數*/
- unsigned i,tem=sqrt(n)+1;
- for(i=3;i<=tem;i+=2) /*i==2的情況已經在前面判斷過了,這裡直接從3開始,且一個奇數*/
- if(n%i==0)return false; /*且進入到這裡的n都是奇數,奇數是不可能被偶數整除的,所以i每次增2*/
- return true;
- }
希望有更好的算法!