我不知道如何在打印质数的每一次迭代之前创建一个数字序列。谢谢你能提供的任何帮助。
public class CountingPrimes {
public static void main(String[] args) {
int flag = 0, i, j;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the 1st number: ");
int firstNum = sc.nextInt();
System.out.println("Enter the 2nd number: ");
int secondNum = sc.nextInt();
System.out.println("Counting prime numbers between "
+ firstNum + " and " + secondNum + ":");
for (i = firstNum; i <= secondNum; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0;
break;
} else {
flag = 1;
}
}
if (flag == 1) {
System.out.println(i);
}
}
}
}现在,我的代码输出(在用户输入两个数字之后):
Counting prime numbers between 1 and 14:
3
5
7
11
13我需要我的代码看起来像:
Counting prime numbers between 1 and 14:
1. 3
2. 5
3. 7
4. 11
5. 13此外,如果你能看到任何错误或改进,我可以改变,我会非常感谢它。再次感谢您!
发布于 2017-11-27 04:18:59
一个简单的改变:
import java.util.Scanner;
public class CountingPrimes {
public static void main(String[] args) {
int flag = 0, i, j;
int count = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter the 1st number: ");
int firstNum = sc.nextInt();
System.out.println("Enter the 2nd number: ");
int secondNum = sc.nextInt();
System.out.println("Counting prime numbers between "
+ firstNum + " and " + secondNum + ":");
for (i = firstNum; i <= secondNum; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
flag = 0;
break;
} else {
flag = 1;
}
}
if (flag == 1) {
System.out.println(++count + "." + i);
}
}
}
}
发布于 2017-11-27 03:51:24
您可以在打印素数时使用计数器并打印计数器。每次增加计数器。
int counter = 1;
int flag = 0, i, j;
.....
if (flag == 1) {
System.out.format("%d. %d\n", counter, i);
counter++;
}发布于 2017-11-27 03:52:45
只要在输出数字时添加一个count变量并增加它:
...
int count = 0;
for (i = firstNum; i <= secondNum; i++) {
...
if (flag == 1) {
count++;
System.out.format("%d. %d%n", count, i);
}
}https://stackoverflow.com/questions/47503686
复制相似问题