【发布时间】:2014-11-04 18:16:22
【问题描述】:
我很难弄清楚这个程序。我已经制定了一种方法来确定输入的数字是否是素数,但现在我必须编写一个方法,该方法将正 int num 作为参数并返回 [0, num-1 范围内的随机素数]。我不确定我是否正确使用了 isPrime 方法。此外,我必须通过在 main 中调用它来测试这个方法,但我也不确定如何做到这一点。这是我的代码:
public static boolean isPrime(int num)
{
for(int i = 2; i<= num-1;i++)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
public static int randomPrime(int num)
{
Random r = new Random();
int x = r.nextInt(num);
for( int i = 0; i <= x; i++)
{
if(!isPrime(x))
{
num = x;
}
}
return x;
}
【问题讨论】:
-
在您的
randomPrime方法中分配num = x,然后您对这些信息什么也不做。相反,您可能希望首先构建 0 和 num-1 之间的所有素数的列表,然后返回“随机素数”,选择 0 和 list.size()-1(含)之间的随机索引并返回列表.get(that_index)