1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
| int main() { int num = 7; int stopNum = sqrt(num); if (num < 2) { cout << "不是素数"; } int i; for (i = 2; (i <= stopNum) && (num % i != 0); i++ ) { NULL; } if (i > stopNum) { cout << "素数" << endl; } return 0; }
|
为什么是sqrt(num)终止呢,因为一个合数可以是若干个质数的乘积,而且这若干个质数中至少有一个质数不大于sqrt(num),可以用反证法证明。
判断一个数是否是素数还有其他更高效的算法。(如素数表)
下文介绍的算法只能从概率意义上判定。
http://blog.csdn.net/arvonzhang/article/details/8564836