📜  快速检查Prime并在Java查找下一个Prime的快速方法

📅  最后修改于: 2021-06-26 12:33:11             🧑  作者: Mango

许多编程竞赛问题都是与素数相关的。要么我们需要检查素数,要么要求我们对1到N之间的所有素数执行某些功能。示例:计算1到1000000之间的所有素数的总和。

Java在Java .math.BigInteger下提供了两个函数来处理素数。

  • isProbablePrime(int确定性): BigInteger类中的一种方法,用于检查给定数字是否为质数。对于确定性= 1,如果BigInteger为质数,则返回true,如果BigInteger为复合数,则返回false。

    下面是演示上述函数的Java程序。

    // A Java program to check if a number is prime using
    // inbuilt function
    import java.util.*;
    import java.math.*;
      
    class CheckPrimeTest
    {
        //Function to check and return prime numbers
        static boolean checkPrime(long n)
        {
            // Converting long to BigInteger
            BigInteger b = new BigInteger(String.valueOf(n));
      
            return b.isProbablePrime(1);
        }
      
        // Driver method
        public static void main (String[] args)
                             throws java.lang.Exception
        {
           long n = 13;
           System.out.println(checkPrime(n));
        }
    }
    

    输出:

    true
  • nextProbablePrime() :BigInteger类中存在的另一个方法。此函数返回大于当前BigInteger的下一个质数。

    下面是演示上述函数的Java程序。

    // Java program to find prime number greater than a
    // given number using built in method
    import java.util.*;
    import java.math.*;
      
    class NextPrimeTest
    {
        // Function to get nextPrimeNumber
        static long nextPrime(long n)
        {
            BigInteger b = new BigInteger(String.valueOf(n));
            return Long.parseLong(b.nextProbablePrime().toString());
        }
      
        // Driver method
        public static void main (String[] args)
                        throws java.lang.Exception
        {
            long n = 14;
            System.out.println(nextPrime(n));
        }
    }
    

    输出:

    17

    如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。