Java 显示';n';复合数的数目

Java 显示';n';复合数的数目,java,Java,我试着做一个如下的程序 从用户处获取一个整数n;查找前n个复合数字;以每行包含5个数字的方式显示这些数字。例如,如果用户输入10,则程序需要输出 468910 12 14 15 16 18“ 问题是,当我输入要显示的整数数时,它显示的比预期的少一个,就像如果我输入整数数“10”,它会打印出9个整数 import java.util.Scanner; 公共课你好{ 公共静态void main(字符串[]args){ intn; int状态=1; int num=1; 整数计数=0; 扫描仪输入=

我试着做一个如下的程序

从用户处获取一个整数n;查找前n个复合数字;以每行包含5个数字的方式显示这些数字。例如,如果用户输入10,则程序需要输出

468910

12 14 15 16 18“

问题是,当我输入要显示的整数数时,它显示的比预期的少一个,就像如果我输入整数数“10”,它会打印出9个整数

import java.util.Scanner;
公共课你好{ 公共静态void main(字符串[]args){

intn;
int状态=1;
int num=1;
整数计数=0;
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入要查看的复合编号:”);
n=input.nextInt();
System.out.println(“第一个“+n+”复合数字是:”);

对于(int i=2;i在下面的循环中使用
2
初始化
i
是否有任何具体原因:


for(int i=2;我使用您的调试器一次一行地检查代码。您会比在这里提问更快地发现问题并学到更多。看起来您可能在寻求家庭作业帮助。虽然我们在这方面没有问题,但请注意这些问题,并相应地编辑您的问题。(即使这不是家庭作业,也请考虑这个建议。)欢迎使用堆栈溢出。看起来你需要学习使用调试器。请自取一些。如果以后还有问题,请随时返回更多的细节。
    int n;
    int status = 1;
    int num = 1;
    int count = 0;

    Scanner input = new Scanner(System.in);
    System.out.println("Enter the number of composite numbers you wish to view:");

    n = input.nextInt();
    System.out.println("The first " + n + " composite numbers are:");



    for (int i = 2; i <= n;) {
        for (int j = 2; j <= Math.sqrt(num); j++) {
            if (num % j == 0) {
                status = 0;
                break;
            }
        }
        if (status == 0) {
            System.out.print(num + " ");
            i++;
            count++;
        }
        status = 1;
        num++;

        if (count == 5) {
            System.out.println();
            count = 0;
        }
    }
}
for (int i = 1; i <= n;) {
    for (int j = 2; j <= Math.sqrt(num); j++) {
        if (num % j == 0) {
            status = 0;
            break;
        }
    }
    if (status == 0) {
        System.out.print(num + " ");
        i++;
        count++;
    }
    status = 1;
    num++;

    if (count == 5) {
        System.out.println();
        count = 0;
    }
}