C語言之判斷100~200之間的素數(質數)
阿新 • • 發佈:2019-01-05
題目描述:編寫程式找出100~200之間的個素數,並輸出所有素數。
素數的定義:在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。
所以本題的思路是將一個數除以2到本身減1,不過我們只需要將一個數除以2到本身的開根號即可,這樣更加提高程式的效率。
# include <stdio.h>
# include <math.h>
int main()
{
int i, m, k, h = 0, leap = 1;
for (m=100; m<=200; m++)
{
k = (int)sqrt(double(m));//當一個數若不能被從2開始,到自身開根號為止這個範圍內的整數整除,它就是素數了。
//這樣減少運算次數,提高了程式效率
for (i = 2; i<=k; i++)
{
if (m%i == 0)
{
leap=0;
break; //此處的break終止的是整個for迴圈(注:在for中的if中如果執行了break就終止了整個for迴圈)
}
}
if (leap)
{
printf("%-4d", m); //三位數,加多一個空格
h++;
if (h % 10 == 0) //夠十個,過下一行
printf("\n");
}
leap = 1; //leap重新賦值1
}
printf("\n");
}
執行環境:vs2010
執行結果: