① 要判斷一個數是不是素數,首先要知道什麼是素數。回憶一下數學裡的知識,什麼是素數?隻能被自身和1整除的正整數是素數。1既不是素數,也不是合數;2是最小的素數,也是唯一一個是偶數的素數。
② 判斷一個正整數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的平方根。
其中最後一種方法判斷速度最快,是以這裡采用最後一種方法。
③ 判斷一個整數是不是素數,由于需要一次一次地做除法,是以要使用循環。
偶數都為2 的倍數,是以均不為素數,這樣我們就可以排除掉偶數,直接判斷奇數是不是素數
#include<stdio.h>
#include<math.h>
int main( )
{
int m,i,k=0;
for(m=101; m<=200; m+=2) //如果用了簡便的 m+=2,就需要 m從101開始,否則找出來的全是偶數
{
k=sqrt(m);
for (i=2;i<=k;i++)
{
if (m%i==0) break;
}
if (i>k)
{
printf("%d ",m);
}
}
}
運作結果為:
note : i>k證明上面那個for循環跑到底了,for循環跑到底還沒break說明m是一個素數。