除了1和自身之外不能整除其它數, 稱之為素數. 最小的素數是2. 沒有最大的素數.
1000以內素數, 如下圖所示:
關於素數的演算法, 一般有2種.
第1種, 給出乙個數n(n >= 2), 判斷n是不是素數
第2種, 給出乙個數n(n >= 2), 把[2, n]
的所有素數拿出來
判斷乙個數n是否是素數, 最簡單粗暴的方法就是把n分別與i(i的範圍是[2, n-1])求餘
稍微想一下我們就能知道, 只需判斷n與[2, n/2]求餘即可
再高階點利用數學上的證明, 可以得出, 只需判斷n與[2, sqrt(n)]求餘即可
c語言sqrt的原型是: double sqrt(double x)下面的**展示了2個利用sqrt(n)就素數的演算法, 其中第2個演算法通過一些簡單的變換, 使
我們不必具體求出sqrt(n)的值, 就能判斷n是不是素數
#include #include int isprime1 (int n);
int isprime2 (int n);
int main ()
}return 0;
}// 判斷n是否是素數(利用庫函式sqrt(n))
// 返回值: 是返回1, 否返回0
int isprime1 (int n)
}return flag;
}// 判斷n是否是素數(不使用sqrt())
// 返回值: 是返回1, 否返回0
int isprime2 (int n)
i++;
}return flag;
}
C語言實驗 判斷素數(迴圈結構)
problem description 從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.input 輸入任意乙個正整數n 1 n 1000000 output 判斷n是否為素數,並輸出判斷結果 如...
C語言實驗 判斷素數(迴圈結構)
從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.輸入任意乙個正整數n 1 n 1000000 判斷n是否為素數,並輸出判斷結果 如果n是素數則輸出 this is a prime.否則輸出 thi...
C語言實驗 判斷素數(迴圈結構) OJ
time limit 1000ms memory limit 65536kb problem description 從鍵盤上輸入任意乙個正整數,然後判斷該數是否為素數。如果是素數則輸出 this is a prime.否則輸出 this is not a prime.input 輸入任意乙個正整數...