分析:
判斷一個正整數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