以下是引用luckhide在2016-3-24 12:22:59的发言:
这样行吗?不懂能除尽2、3、5的要返回2、3、5,再说返回的2、3、5不是等同于true吗?
这样行吗?不懂能除尽2、3、5的要返回2、3、5,再说返回的2、3、5不是等同于true吗?
返回的是邏輯値true,不是返回2、3、5數値。這3個特殊數値是後面循環邏輯中會漏掉的素數,即後面的循環會把它們判斷爲false,那是不行的。

授人以渔,不授人以鱼。

2016-03-24 12:27

2016-03-24 12:34
漏看一个等于号,是关系运算。
2016-03-24 12:36
程序代码: bool IsPrime2(unsigned short n)
{
if (n % 2 == 0)
{
return n == 2;
}
if (n % 3 == 0)
{
return n == 3;
}
if (n % 5 == 0)
{
return n == 5;
}
int b=4;
for (unsigned short i = 7; i * i <= n; i += b)
{
if (n % i == 0)
{
return false;
}
b^=6;
}
return true;
}
[此贴子已经被作者于2016-3-24 12:43编辑过]

2016-03-24 12:42
[此贴子已经被作者于2016-3-24 12:48编辑过]
2016-03-24 12:42

2016-03-24 12:47
2016-03-24 13:02
2016-03-24 13:05

2016-03-24 13:11
[此贴子已经被作者于2016-3-24 13:19编辑过]
2016-03-24 13:15