1. 程式人生 > >一種判斷大數是否為素數的方法

一種判斷大數是否為素數的方法

判斷大數是否為素數在很多題中有所涉及,也一直讓我很頭疼。我在網上搜集了一些資料,有很多方法可以用來判斷,我找到的方法中複雜度最低的是利用小費馬定理來判斷,但苦於水平不夠,對這種方法的理解陷入了雲裡霧裡的狀態。但下面我要提到的這種方法比較易懂,適用的數夠大(long long 型)複雜度相較於暴力判斷也低了不少。拿小本本記下來:

int sushu(long long num)
{
                 if(num == 1) return 0;
                 if(num ==2|| num==3 ) return 1 ;
                 if(num %6!= 1&&num %6!= 5) return 0 ;
                 int tmp =sqrt( num);
                 for(int i= 5;i <=tmp; i+=6 )
                      if(num %i== 0||num %(i+ 2)==0 )return 0 ;
                 return 1 ;

}