1. 程式人生 > >C語言之判斷100~200之間的素數(質數)

C語言之判斷100~200之間的素數(質數)

題目描述:編寫程式找出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
執行結果: