Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中查找下一个最大素数的内置函数是什么?_Java_Primes - Fatal编程技术网

java中查找下一个最大素数的内置函数是什么?

java中查找下一个最大素数的内置函数是什么?,java,primes,Java,Primes,Java API是否提供了一个函数来计算给定输入x的下一个最大素数?是的,实际上没有这样的函数 这将是一个相当深奥的方法,并且不是一个包含在通用类库中的好方法。您需要自己编写,使用a或a。如果您使用大整数,则可能适合使用biginger.nextProbablePrime()。否则,你可以很容易地写自己的。这是我之前准备的一个: static long nextPrime(long previous) { if (previous < 2L) { return 2L; } if (

Java API是否提供了一个函数来计算给定输入x的下一个最大素数?

是的,实际上没有这样的函数

这将是一个相当深奥的方法,并且不是一个包含在通用类库中的好方法。您需要自己编写,使用a或a。

如果您使用大整数,则可能适合使用
biginger.nextProbablePrime()
。否则,你可以很容易地写自己的。这是我之前准备的一个:

static long nextPrime(long previous) {
  if (previous < 2L) { return 2L; }
  if (previous == 2L) { return 3L; }
  long next = 0L;
  int increment = 0;
  switch ((int)(previous % 6L)) {
    case 0: next = previous + 1L; increment = 4; break;
    case 1: next = previous + 4L; increment = 2; break;
    case 2: next = previous + 3L; increment = 2; break;
    case 3: next = previous + 2L; increment = 2; break;
    case 4: next = previous + 1L; increment = 2; break;
    case 5: next = previous + 2L; increment = 4; break;
  }
  while (!isPrime(next)) {
    next += increment;
    increment = 6 - increment;   // 2, 4 alternating
  }
  return next;
}
如果参数为prime,则返回
true
,否则返回
false

公共类下一次{
public class nextprime {

  public static void main(String args[]) {
    int count = 0;
    int n = 17;
    for (int i = 2; i <= n / 2; i++) {
        if (n % i == 0) {
            count++;

        }
    }
    if (count == 0) {
        System.out.println("prime");
        for (int p = n + 1; p >0; p++) {
            int y=0;
            for (int i = 2; i <= p / 2; i++) {
                if (p % i == 0) {
                    y++;

                }
            }
            if(y==0)
            {
                System.out.println("Next prime "+p);
                break;
            }
        }
    } else {
        System.out.print("not prime");
    }
  }
公共静态void main(字符串参数[]){ 整数计数=0; int n=17; for(inti=2;i0;p++){ int y=0;
for(int i=2;i
Primes.nexttime(int n)
from是您所需要的。

JavaJava.math.biginger类包含一个方法nextProbablePrime(),用于检查数字的素性

import java.math.BigInteger;

public class NextPrime {

            public static void main(String[] args) {
                        int number = 83;
                        Long nextPrime = nextPrime(number);
                        System.out.println(nextPrime + " next prime to " + number);

            }

            /**
             * method to find next prime
             * @param number
             * @return boolean
             */
            private static Long nextPrime(int number) {
                        BigInteger bValue = BigInteger.valueOf(number);

                        /**
                         * nextProbablePrime method used to generate next prime.
                         * */
                        bValue = bValue.nextProbablePrime();

                        return Long.parseLong(bValue.toString());
            }
}
输出: 89次于83

有关更多信息,请参阅我的博客:

除非你写一个。我认为Sun/Oracle的人开发这个;测试它;质量保证它;代码审查它;记录它;翻译文档;对于一些很少使用的东西;将是浪费钱。你的iphone与这个问题有什么关系?该死!好吧,很酷,谢谢你!它在数学包中。Math.completeHomeWorkAssignment(CS101Assignment);筛用于查找小于特定数字的所有素数-在本例中使用测试:)当然可以,但您始终可以先生成最多N个素数,然后“下一个”(低于N)就变得微不足道了。:)为什么它会深奥?为什么它不是“伟大”呢库的候选者?为什么JDK中有一个方法可以做到这一点?BigInteger.nextProbablePrime()。我想你没有给出正确的答案,我是舒尔,你没有给出解决方案。这不是解决方案吗?这篇文章中的每个人都说没有方法来获取素数-但是有.BigInteger.nextProbablePrime()就像rossum说的。人们嘲笑这个问题,说你应该自己做作业,但他们甚至不知道答案。据我所知,这将首先确定17确实是最好的,而不是低效地确定18不是最好的,然后确定19是最好的。
import java.math.BigInteger;

public class NextPrime {

            public static void main(String[] args) {
                        int number = 83;
                        Long nextPrime = nextPrime(number);
                        System.out.println(nextPrime + " next prime to " + number);

            }

            /**
             * method to find next prime
             * @param number
             * @return boolean
             */
            private static Long nextPrime(int number) {
                        BigInteger bValue = BigInteger.valueOf(number);

                        /**
                         * nextProbablePrime method used to generate next prime.
                         * */
                        bValue = bValue.nextProbablePrime();

                        return Long.parseLong(bValue.toString());
            }
}