【发布时间】:2013-09-25 00:50:33
【问题描述】:
此方法旨在递归地遍历该方法并判断一个数字是否为“超级素数”。超级素数是一个本身就是素数的数,每次它被 10 减去时,所有这些数也是素数。例如 2333 是超素数,因为 233 是素数 23 是素数,2 是素数。 即使我传入数字 2333,我的方法仍然返回 false。 isPrime() 方法成功地测试了一个数字是否为素数。
public boolean isSuperPrime(int h)
{
if((h<10)&&isPrime(h))
return true;
else if(isPrime(h))
return isSuperPrime(h/10);
else
return false;
}
【问题讨论】:
-
向我们展示您的
isPrime()方法。 -
你有没有在调试器下一步步运行,看看你的代码是如何工作的?
-
不,他们不是。听起来您在没有检查它是否已经是数学中的既定名称的情况下就提出了这个术语。它是——en.wikipedia.org/wiki/Super-prime
-
您的 isSuperPrime 方法是正确的。错误必须在 isPrime 中。
-
您应该向我们展示您的
isPrime()方法。至少,您是否检查过它是否为 2333、233、23 和 2 返回true?