java - 如何显示输入数字的最大因数?

标签 java

package Testing;

import java.util.Scanner;

public class test {

     public static void main (String[] args){
        Scanner scan1 = new Scanner(System.in);
        System.out.print("Input positive integer: ");
        int n = scan1.nextInt();

        for (int i = 2; i < Math.sqrt(n); i++){
            if (n % i == 0){
                System.out.print(n/i);
            }
        }

    }

}  

当我运行此代码时,每当我输入 50 时,它最终都会打印数字 2510。我做错了什么?

最佳答案

正如评论中提到的,您已经非常接近了,但是在找到答案后需要停止迭代。这可以使用 break 关键字来完成,该关键字退出最内层循环。

for (int i = 2; i < Math.sqrt(n); i++){
    if (n % i == 0){
        System.out.print(n/i);
        break;
    }
}

关于java - 如何显示输入数字的最大因数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50083502/

相关文章:

java - apache poi excel 大自动列宽

java - 在静态最终字符串列表中查找项目

java - 使用 sun.misc.Unsafe 获取 Java 数组项的地址?

java - 如何从实现可序列化的 XSD 生成类?

java - 使用pdfbox Java在中间位置绘制图像

Java XML 解析器?

java - 在java中扩展参数化工厂方法

java - 抛出 java.util.ConcurrentModificationException

java - 如何使用joda日期时间转换UTC格式的字符串日期

java - 单元测试很慢,因为spring classpath扫描多次扫描同一个包