Java Primality Test

  • + 2 comments

    Java solution - passes 100% of test cases

    From my HackerRank solutions.

    I use isProbablePrime() with certainty = 10 to achieve 99.9% accuracy. However, even certainty = 1 (which achieves 50% accuracy) is enough to pass the test cases.

    This function is always 100% certain if it tells you if a number is "not prime". If it says "prime", it's only 99.9% certain. It may be the case that it just hasn't found a prime number number that divides the BigInteger yet.

    import java.util.Scanner;
    import java.math.BigInteger;
    
    public class Solution {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            BigInteger n = scan.nextBigInteger();
            scan.close();
            System.out.println(n.isProbablePrime(10) ? "prime" : "not prime");
        }
    }
    

    Let me know if you have any questions.