在java

时间:2017-02-12 21:07:02

标签: java

我正在编写一个程序来查找用户输入的n1和n2之间的素数。输出应该是逗号分隔它们的素数。例如:

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,带有额外的逗号。我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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。