Java 如何在因子程序中排除数字?以及如何重新提示用户直到输入某个数字?

Java 如何在因子程序中排除数字?以及如何重新提示用户直到输入某个数字?,java,Java,所以我在做这个项目。我需要 编写一个程序,查找整数的因子和因子数 系数将在一行中列出,从最小到最大,每个系数之间用空格隔开 持续接受输入,直到输入0,即哨兵。不要使用系数0 我得到了保理部分。这是我目前得到的输出 Enter an Number 12 The factors are 1 2 3 4 6 12 它在给出因子后立即停止。我不知道如何实现它来重新提示。我尝试过循环,但它不起作用。此外,如何排除1和输入的数字 这就是我的输出的外观。一旦输入0,它应该停止 Enter a num

所以我在做这个项目。我需要

  • 编写一个程序,查找整数的因子和因子数
  • 系数将在一行中列出,从最小到最大,每个系数之间用空格隔开
  • 持续接受输入,直到输入0,即哨兵。不要使用系数0
我得到了保理部分。这是我目前得到的输出

Enter an Number
12
The factors are 
1 2 3 4 6 12 
它在给出因子后立即停止。我不知道如何实现它来重新提示。我尝试过循环,但它不起作用。此外,如何排除1和输入的数字

这就是我的输出的外观。一旦输入0,它应该停止

Enter a number: 12
There are 4 factors for the number 12: 2 3 4 6
Enter a number: 25
There are 1 factors for the number 25: 5
Enter a number: 100
There are 7 factors for the number 100: 2 4 5 10 20 25 50
Enter a number: 13
There are 0 factors for the number 13:
Enter a number: 0
这是代码

package com.FactorsProgram;
import jdk.swing.interop.SwingInterOpUtils;
import java.sql.SQLOutput;
import java.util.Scanner;


 //Java Program to print all factors of a number using function

public class Main {
    public static void main(String[] args) {
        int N;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Number");
        N = scanner.nextInt();

        // Calling printFactors method to print all
        // factors of N
        printFactors(N);
    }


     //This method prints all factors of N
    public static void printFactors(int N) {
        int i;

         //Check for every number between 1 to N, whether it divides N. If K
         //divides N, it means K is a factor of N
        
        System.out.println("factors for the number " );
        for (i = 1; i <= N; i++) {
            
            if (N % i == 0) {

                System.out.print(i + " ");
            }
        }
    }
}
package com.FactorsProgram;
导入jdk.swing.interop.SwingInterOpUtils;
导入java.sql.SQLOutput;
导入java.util.Scanner;
//使用函数打印一个数的所有因子的Java程序
公共班机{
公共静态void main(字符串[]args){
int N;
扫描仪;
扫描仪=新扫描仪(System.in);
System.out.println(“输入一个数字”);
N=scanner.nextInt();
//调用printFactors方法以打印所有
//N因子
印刷因子(N);
}
//此方法打印N的所有因子
公共静态无效打印因子(int N){
int i;
//检查1到N之间的每一个数字,它是否除以N。如果K
//除以N,表示K是N的一个因子
System.out.println(“数字系数”);

对于(i=1;i你有一个循环的正确想法-你需要循环并检查
n
不是
0
。例如:

System.out.println(“输入一个数字”);
n=scanner.nextInt();
而(n!=0){
//调用printFactors方法以打印所有
//N因子
印刷因子(n);
System.out.println(“输入一个数字”);
n=scanner.nextInt();
}

你有一个循环的正确想法-你需要循环并检查
n
不是
0
。例如:

System.out.println(“输入一个数字”);
n=scanner.nextInt();
而(n!=0){
//调用printFactors方法以打印所有
//N因子
印刷因子(n);
System.out.println(“输入一个数字”);
n=scanner.nextInt();
}
“我尝试过循环,但它不起作用。”-循环就是这样做的。你尝试了什么,失败了什么?显示的代码似乎没有包含任何此类尝试。“我尝试过循环,但它不起作用。”-循环就是这样做的。您尝试了什么,它是如何失败的?显示的代码似乎不包含任何此类尝试。