2017-02-28 23 views
-2

我在完成此程序時遇到問題。我明白程序應該做什麼,但是我很難完成它。我的代碼發佈如下。如何使用while循環完成編寫該程序?

對於這個程序,我需要確定一個數字是否是一個質數。除此之外,我需要讓用戶輸入一個範圍(例如1-10),並顯示哪些數字是素數,哪些不是。

這是我迄今爲止...

import java.util.Scanner; 
public class PrimeNumbers 
{ 
    public static void main(String[]args) 
    { 
     //Create Scanner Object 
     Scanner input = new Scanner(System.in); 

     //Initialize variable 
     double num1, range; 


     //Prompt the user to enter in a number 
     do 
     { 
      System.out.println("Please enter in a number:"); 
      num1 = input.nextDouble(); 

      //Decision making 
      if(num1 % 2 == 0 || num1 % 3 == 0 || num1 % 4 == 0 || num1 % 5 == 0 || num1 % 6 == 0 || num1 % 7 ==0 || num1 % 8 ==0 || num1 % 9 == 0) 
      { 
       //Display message 
       System.out.println(num1 + " is not a prime number."); 

       System.out.println("Please enter a range: "); 
       range = input.nextInt(); 

       if() 
      } 

      else 
       //Display output 
       System.out.println(num1 + " is prime."); 

     } 

     while(num1 == -1); 
     { 
      System.out.println("This program has now ended."); 
     } 

    } 
} 
+1

您應該檢查看到NUM1不等於你正在做的模數。 –

+0

什麼聰明的格式化!我將在'while'之後對'''發表評論,但後來我意識到'while'行是'do-while'的後面的句子,而不是獨立的while循環。 – shoover

回答

1

http://beginnersbook.com/2014/01/java-program-to-display-prime-numbers/

import java.util.Scanner; 
class PrimeNumbers2 
{ 
    public static void main (String[] args) 
    {   
     Scanner scanner = new Scanner(System.in); 
     int i =0; 
     int num =0; 
     //Empty String 
     String primeNumbers = ""; 
     System.out.println("Enter the value of n:"); 
     int n = scanner.nextInt(); 
     for (i = 1; i <= n; i++)   
     {     
     int counter=0;   
     for(num =i; num>=1; num--) 
     { 
     if(i%num==0) 
     { 
     counter = counter + 1; 
     } 
    } 
    if (counter ==2) 
    { 
     //Appended the Prime number to the String 
     primeNumbers = primeNumbers + i + " "; 
    } 
     } 
     System.out.println("Prime numbers from 1 to n are :"); 
     System.out.println(primeNumbers); 
    } 
}