【发布时间】:2013-08-02 19:05:09
【问题描述】:
输入行包含三个正整数:r、s 和a,其中(2 <= r < s < a)。保证r 是素数。
它应该打印YES,如果s是r之后的下一个素数并且a是s之后的下一个素数;否则,它应该打印NO。
目前,我有以下isPrime() 方法:
boolean isPrime(int n) {
//check if n is a multiple of 2
if (n%2==0)
return false;
//if not, then just check the odds
for(int i=3;i*i<=n;i+=2) {
if(n%i==0)
return false;
}
return true;
}
【问题讨论】:
-
连续要求你试过什么?如果你没有尝试过,我们就不会做你的功课。
-
那是我很困惑的部分......并且需要帮助。任何指针将不胜感激
-
它们都是素数吗?它们之间有素数吗?
-
另外,你的 isPrime 方法说 2 是复合的...
-
琐碎(次优解):1.都是三个素数。 2. 遍历 r-s 和 s-a,检查那里的素数。如果第一个成功(是的,三个素数),后两个失败(不,没有其他素数),那么你就成功了。否则,失败。
标签: java