java - 欧拉投影最小倍数

标签 java

该代码似乎适用于 10,但不适用于问题所要求的 20。 也许这个数字太大了,当它能被 20 整除时......

public static void main(String args[]) {
    long c = 0;
    while(true){
        int x = 0;
        c++;
        for(int i = 1; i<=20; i++){
            x += c%i;
        }
        if(x==0){
            System.out.println(c);
            break;
        }
    }
}

}

没有错误消息,它只是继续运行而没有“进程完成”

最佳答案

您基本上是在尝试找到 1-20 个数字的最小公倍数。其 LCM 为 2,32,792,560。该程序最终将完成,但速度会非常慢。

要测试的示例程序。

public static void main(String args[]) {
        long c = 232792559;
        while (true) {
            int x = 0;
            c++;
            for (int i = 1; i <= 20; i++) {
                x += c % i;
            }
            if (x == 0) {
                System.out.println(c);
                break;
            }
        }
    }

输出为 232792560

关于java - 欧拉投影最小倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57277789/

相关文章:

java - HTTP 状态 500 - servlet jersey 的 Servlet.init() -servlet 抛出异常

java - 是否有适用于 Android Java 或类似语言的现有虹膜/眼睛识别库?

java - 泛型和 TreeSet

java - 递归地找到java中数组中最长的递增序列

java - tomcat 8 在服务器上运行时出现问题,如磁盘空间不足

java - 使用JLabel添加图片的问题

java - Spring Webflow Jsf 集成 war 在 Glassfishv3 服务器中不起作用

Java 方法返回带有动态对象的 HashMap<key, Object>

java - Android:我应该向 ViewPager 中使用的 fragment 添加一个空构造函数吗

java - Intellij IDEA 有没有自动修复数据类型的选项?