首页 > 解决方案 > Java 中的素数(假时返回下一个素数)

问题描述

public class PrimeNumbers {
    public static void main(String[] args) {
        int num = 6;
        boolean isPrime = true;

        for (int i = 2; i <= num - i; i++) {
            if (num % i == 0) {
                isPrime = false;
                break;
            }
        }
        int nextPrime = num++;
        {
            while (isPrime = false) {


            }
            if (isPrime)
                System.out.println("Is a prime number");
            else
                System.out.println("Is not a prime number" + "the next prime number is" + nextPrime(num));
        }
    }
}

我曾尝试用 Java 编写代码以找到下一个素数,而先前返回的结果为假,但我对如何继续使用“while”代码感到非常困惑。这是我到目前为止所尝试的:

标签: javaprimes

解决方案


为了找到一个素数,你基本上需要一个嵌套循环。所以我建议将你的 for 循环放在 while 循环中。或者你可以在外面有一个 do-while 循环,它会一直循环,直到你找到一个素数。

您的代码应如下所示:

public class PrimeNumbers {

    public static boolean check_prime(int num){
        
        for (int i = 2; i <= num-i ; i++) { 
            if (num % i == 0) {             
                return false;
            }
        } 
        return true;
    }

    public static void main(String[] args){
        int num = 6;

        boolean isPrime= true;

        if(!check_prime(6)){                        
            int nextPrime = num;
            do{
                nextPrime++;
                if (check_prime(nextPrime)) {             
                    isPrime = true;
                    break;
                 }else{
                    isPrime = false;
                 }
            }while(!isPrime);
        }
    
        if (isPrime)
            System.out.println("Is a prime number");
        else
            System.out.println("Is not a prime number" +"the next prime number is" + nextPrime);
    }}}


推荐阅读