2 ctlove0523 ctlove0523 于 2014.10.17 10:21 提问

用Unary predicates来搜寻第一个质数的问题。

#include
#include
#include
using namespace std;
bool isPrime (int number)
{

//ignore nagative sign
number=abs(number);

//0 and 1 is prime numbers
if(number==0||number==1){
   return ture;
 }
//find divisor that divides without a remainder
int divisor;
for(divisor=number/2;number%divisor!=0;--divisor){
    ;
}
return divisor==1;

}
主要是针对其中的逻辑关系和程序的运行不甚明白。假设,调用此判断式的值为24。24取绝对值后仍然为24,24也不等于0或1;程序进入for循环,divisor=14,number%divisor=0不满足循环条件,for循环终止,转而执行return divisor==1.这样这个判断式返回bool类型的true,则说明24是一个prime number,但是其实24不是一个primer number。请问其中的理解错在什么地方,最好能举个例子解释一下。
你的回答将对我产生积极的影响,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片