天天看點

【C語言】求100~200之間的素數

分析: 

   判斷一個正整數m是否為素數有多種方法。 

        方法1:讓m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一個整數整除,則m是素數。 

        方法2:讓m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一個整數整除,則m是素數。 

        方法3:讓m依次被2,3,…,sqrt(m)除,如果m不能被2~sqrt(m)中的任意一個整數整除,則m為素數。sqrt(m)為m的平方根。 

        其中最後一種方法判斷速度最快,是以這裡采用最後一種方法。 

#include "math.h" 
int  main( ) 
 {
      int m,i,k,n=0; 
      for(m=101; m<=200; m+=2) 
        {
            k=sqrt(m); 
         for (i=2;i<=k;i++) 
         if (m%i==0) break; 
         if (i>k) 
          {
            printf("%5d",m); 
            n=n+1; 
            if (n%10==0)
            printf("\n"); 
           } 
        } 
 } 
           

 運作結果為: 

        101 103 107 109 113 127 131 137 139 149 

        151 157 163 167 173 179 181 191 193 197 

        199