有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

分析Java中的素数输出。未按预期获得输出

public class Chpt5_Project{
public static void main(String[] args) {
    // Declare Variables
    int randomNumbers = 0;
    int sum = 0;
    //Loop for number generation and print out numbers
    System.out.print("The five random numbers are: ");
    for (int i = 0; i <= 4; i++)
    {
        randomNumbers = (int)(Math.random()*20);
        sum += randomNumbers;

        if (i == 4) {
            System.out.println("and " + randomNumbers + ".");
        }
        else {
            System.out.print(randomNumbers + ", ");
        }
    }
    //Display Sum
    System.out.println("\nThe sum of these five numbers is " + sum + ".\n");

 // Test if number is prime
    boolean isPrime = true;
        for (int divisor = 2; divisor <= sum / 2; divisor++) 
        if (sum % divisor == 0) { // If true, number is not prime
            isPrime = false; // Set isPrime to false

             System.out.println("The sum is not a prime number.");}
        else {
                 System.out.println("The sum is a prime number.");
          break;
      }

   }
}

样本输出

The five random numbers are: 5, 0, 10, 6, and 13.

The sum of these five numbers is 34.

The sum is not a prime number. The sum is a prime number.


共 (1) 个答案

  1. # 1 楼答案

    您需要添加for-loop括号,然后在if-statement内添加break语句

    for (int divisor = 2; divisor <= sum / 2; divisor++){
    
            if (sum % divisor == 0) { // If true, number is not prime
                  isPrime = false; // Set isPrime to false
                  System.out.println("The sum is not a prime number.");
                  break;
            }
            else {
                 System.out.println("The sum is a prime number.");
                 break;
             }
    }