我正在编写一个程序来查找用户输入的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,
带有额外的逗号。我该如何解决这个问题?
答案 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。