2017-02-12 88 views
-1

我正在編寫一個程序來查找用戶輸入的n1和n2之間的素數。輸出應該是用逗號分隔它們的素數。例如:在java中用逗號排序整數輸出

N1 = 1, N2 = 10, 輸出:3,5,7

import java.util.Scanner; 

public class Primes { 
    public static void main(String[] args) { 
    int n1, n2, flag = 0, i, j; 
    Scanner sc = new Scanner(System.in); 
    n1 = sc.nextInt(); 
    n2 = sc.nextInt(); 
    for (i = n1; i <= n2; i++) { 
     for (j = 2; j < i; j++) { 
      if (i % j == 0) { 
       flag = 0; 
       break; 
      } 
      else { 
       flag = 1; 
      } 

     } 
     if (flag == 1) { 
      System.out.printf("%d,", i); 
     } 
    } 
} 
} 

但我的輸出是:3,5,7,與額外的逗號。我如何解決這個問題?

+0

打印'「,」'只要第二個打印號碼。你必須首先打印'「,」',然後打印數字,而不是像實際上那樣打印。 – davidxxx

回答

0

更改線路

System.out.printf("%d,", i); 

System.out.printf("%d", i); 

的第一任你打印出來,並使用

System.out.printf(",%d", i); 

隨後的素數。

此外,請注意1和10之間的素數是2,3,5,7而不是3,5,7。