英文:
How to exclude numbers in factor program ? AND How to re prompt user until a certain number is entered?
问题
这是您提供的代码的翻译部分:
package com.FactorsProgram;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int N;
Scanner scanner;
scanner = new Scanner(System.in);
System.out.println("请输入一个数字:");
N = scanner.nextInt();
while (N != 0) {
printFactors(N);
System.out.println("请输入一个数字:");
N = scanner.nextInt();
}
}
public static void printFactors(int N) {
int count = 0;
System.out.println("数字 " + N + " 的因数有:");
for (int i = 2; i <= N / 2; i++) {
if (N % i == 0) {
System.out.print(i + " ");
count++;
}
}
System.out.println();
if (count == 0) {
System.out.println("数字 " + N + " 没有因数。");
} else {
System.out.println("数字 " + N + " 有 " + count + " 个因数。");
}
}
}
注意:为了实现在输入0之前持续循环接受输入,我添加了一个 while
循环。同时,我也进行了必要的调整,以便程序能够输出您所期望的格式。
英文:
So I am doing this project. And I need to
- Write a program that finds the factors and number of factors for an integer.
- Factors will be listed on 1 line for smallest to largest with a space separating each.
- Continuously accept input until a 0 is entered, which is the sentinel. Do not factor 0.
I got the factoring part. This is the output I am currently getting.
Enter an Number
12
The factors are
1 2 3 4 6 12
It stops immediately after giving the factors. I am not sure on how to implement it to re prompt. I have tried loops but its not working. Also,How can I exclude 1 and the entered number.
This is how my output should look. It should stop once 0 is entered.
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
Here is the code.
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 + " ");
}
}
}
}
答案1
得分: 0
你关于使用循环的想法是正确的 - 你需要循环并检查 n
是否不等于 0
。例如:
System.out.println("输入一个数字");
n = scanner.nextInt();
while (n != 0) {
// 调用 printFactors 方法打印 N 的所有因数
printFactors(n);
System.out.println("输入一个数字");
n = scanner.nextInt();
}
英文:
You had the right idea with having a loop - you need to loop and check that n
isn't 0
. E.g.:
System.out.println("Enter an Number");
n = scanner.nextInt();
while (n != 0) {
// Calling printFactors method to print all
// factors of N
printFactors(n);
System.out.println("Enter an Number");
n = scanner.nextInt();
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论