首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在这个素数生成器中实现数字序列?

如何在这个素数生成器中实现数字序列?
EN

Stack Overflow用户
提问于 2017-11-27 03:49:15
回答 4查看 47关注 0票数 0

我不知道如何在打印质数的每一次迭代之前创建一个数字序列。谢谢你能提供的任何帮助。

代码语言:javascript
运行
复制
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);
                }
        }


    }
}

现在,我的代码输出(在用户输入两个数字之后):

代码语言:javascript
运行
复制
Counting prime numbers between 1 and 14:
 3
 5
 7
 11
 13

我需要我的代码看起来像:

代码语言:javascript
运行
复制
Counting prime numbers between 1 and 14:
1. 3
2. 5
3. 7
4. 11
5. 13

此外,如果你能看到任何错误或改进,我可以改变,我会非常感谢它。再次感谢您!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-27 04:18:59

一个简单的改变:

代码语言:javascript
运行
复制
 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);
                }
            }
        }
    }

票数 1
EN

Stack Overflow用户

发布于 2017-11-27 03:51:24

您可以在打印素数时使用计数器并打印计数器。每次增加计数器。

代码语言:javascript
运行
复制
int counter = 1;
int flag = 0, i, j;
.....
if (flag == 1) {
    System.out.format("%d. %d\n", counter, i);
    counter++;
}
票数 2
EN

Stack Overflow用户

发布于 2017-11-27 03:52:45

只要在输出数字时添加一个count变量并增加它:

代码语言:javascript
运行
复制
...
int count = 0;
for (i = firstNum; i <= secondNum; i++) {
    ...
    if (flag == 1) {
        count++;
        System.out.format("%d. %d%n", count, i);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47503686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档