【发布时间】:2014-01-29 17:52:17
【问题描述】:
所以我有一个我正在为课堂工作的小方法,这个问题是一个棘手的问题,有点令人困惑。基本上我要做的是编写一个方法,该方法将采用您输入的数字,它会找到下一个比平方数大 1 的素数。例如,如果我输入 10,结果将是 17,因为 17 是质数,并且它的 1 大于平方,平方为 16。所以我必须编写一个只有一个 return 语句的方法来做这个,我完全不知道从哪里开始。到目前为止,我所拥有的是public static int nextSquarePlus1Prime(int num){
} 字面意思。一些帮助将不胜感激。
我已经有这种方法可以检查数字是否为素数:
public static boolean isPrime(int num){
int i;
boolean numberIsPrime=true;
if(num==1){
numberIsPrime=false;
}
for(i=2;i*i<=num;i++){
if(num%i==0){
numberIsPrime=false;
}
}
return numberIsPrime;
}
有没有办法将另一段代码添加到此方法中,与此代码一起检查数字是否为正方形?
所以这就是我想出的我的代码,我输入了 10 作为我的号码。当我应该得到 17 时,我得到了 50。
public static int nextSquarePlus1Prime(int num){
int i;
int save=0;
for(i=1;i<=num;i++){
if(isPrime(i)&& i*i+1>=num){
save=i*i+1;
}
}
return save;
}
【问题讨论】:
-
如果你不亲自尝试,你永远学不会......