判断一个数是否是素数

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

posted @ 2013-07-15 22:46  helloweworld  阅读(315)  评论(0编辑  收藏  举报