我对编码项目很困惑。我应该返回大于$output = '<p><img src="" class="alignleft" width="600" height="400"> some text <img src="" class="alignright" width="600" height="300">';
的最小素数,例如integer "num",
应该返回smallestPrimeBiggerThan(20)
我已经有代码来确定数字是否为素数,但我不知道如何做其余的代码。我已经查看了这个网站,但其余的解释是针对C和C ++的。我不知道如何将C之间的代码转换为Java。此外,我更喜欢这是一个简单的方法来完成它,因为我是代码新手,并不太了解更复杂的部分(数组等)。
以下是参数
的示例整数n是80,所以整数旁边的最小素数是83,所以方法会返回83
以下是代码的基线
23
答案 0 :(得分:1)
这是我放在一起的片段(注:逻辑由@Paul Lemarchand和@Elliot Frisch提供)以及this素数算法:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter a whole number to find the next highest prime of: ");
System.out.println(smallestPrimeBiggerThan(input.nextInt()));
}
static boolean isPrime(int n) {
if (n%2==0) return false;
for(int i=3;i*i<=n;i+=2) {
if(n%i==0)
return false;
}
return true;
}
public static int smallestPrimeBiggerThan(int num) {
while (!isPrime(num)) {
++num;
}
return num;
}
我知道你已经拥有了你的主要算法,但是我希望它能够运行复制/粘贴,所以我从互联网上加入。您正在寻找的部分是while
循环。每次循环时它会检查num
是否为素数,但是先增加变量,这样我们就不会只返回素数输入。如果它不是素数,则增量......冲洗并重复,直到我们有一个素数然后返回。
答案 1 :(得分:1)
如果您不关心精度,可以使用nextProbablePrime
类的BigInteger
方法。例如:
BigInteger index=new BigInteger("20");
System.out.println(index.nextProbablePrime());
nextProbablePrime
找到一个可能的素数.javadoc:
返回大于此
BigInteger
的第一个整数 可能是素数。由此返回的数字的概率 方法是复合不超过2 -100 。这种方法将是 在搜索时永远不会跳过素数:如果它返回p
,则有 没有素数q
,而this < q < p
。