java - 查找用户使用 while 循环输入的整数的所有因子的 Java 代码
问题描述
因此,目前,我正在编写一段代码,该代码将确定整数是否为素数,并且工作得非常好,因为我已经使用不同的素数和非素数整数对其进行了多次测试。现在,我必须通过列出任何给定整数的所有因子来结束它,我只是不知道该怎么做。下面是我当前的程序,没有我需要的因素部分。我不知道从哪里开始,因为我对“while 循环”并不是特别擅长,因为我们今天刚刚了解了它们。
这就是我必须做的,“程序应该使用适当的格式给出整数的所有因子的输出,以便因子清晰。它应该输出“(输入)的因子是:”如果整数输入是 1 和它本身,程序应该声明:“这是一个素数!” 如果它不是质数,则什么也不打印。”
对此的任何帮助将不胜感激。谢谢!
import java.util.*;
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println("What is the number that you have chosen?");
int num = console.nextInt();
int div = 2;
boolean run = false;
System.out.println("The factors of " + num + " are:");
while (div <= Math.sqrt(num)) {
if (num % div == 0) {
System.out.println(div + " , " + num/div);
div++;
run = true;
} else {
div++;
}
}
if (run == false) {
System.out.print("This is a prime number!");
}
}
}
解决方案
boolean isPrime = true;
for(int i = 2; i <= num/2; i++){
if(num % i == 0) {
System.out.println("The factors of " + num + " are:" + i);
isPrime = false;
}
}
if(isPrime) {
System.out.print("This is a prime number!");
}
我想让你思考的是为什么我只运行循环到 num/2 而不是直到 num?让我知道你是否能弄清楚。
推荐阅读
- python - 如何将字符串列表转换为单个分隔字符串?
- django - Django - __str__ 返回非字符串(类型元组)
- asp.net-mvc - 如何将模型中的两个类的上下文传递到一个视图而不会出现此错误?
- python - 如何训练一个 CNN 回归模型,该模型接受多个输入图像并给出单个值作为输出。?
- javascript - 单击Javascript中的链接后自动返回
- python - 根据行条件过滤熊猫列
- powershell - 写主机,循环问题,如何获取摘要字符串?
- swift - 如何使用 NSButton 和 NSTextfield 将单选按钮属性添加到自定义视图
- c - C#pragma 是预处理还是编译时操作?
- r - R - 如何使用 ifelse() 和 substr() 从列中提取特定数据?