首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目Euler #3 Java

项目Euler #3 Java
EN

Stack Overflow用户
提问于 2012-09-27 06:02:36
回答 1查看 216关注 0票数 1
代码语言:javascript
复制
public class Problem3 {

    public static void main (String args[]) {
        System.out.print(primeMod(60085147514L));
    }

    public static double primeMod(long d) {
        long max = 0;
        int count = 0;

        for (long i = 2; i < d; i++) {
            if (d % i == 0) { 
                boolean isPrime = primeCounter(i);
                if(isPrime == true) { 
                    max = i;
                    System.out.println(max);
                }
            } else {
                max = max;
            }
        }

        return max;
    }

    public static boolean primeCounter(long x) {
        int count = 0;
        for (int s = 1; s <= x; s++) {
            if (x % s == 0) {
                count++;
            }
        }

        if (count == 2) {
            return true;
        } else {
            return false;
        }
    }
}

我的程序适用于较小的数字,但是当它不被zero.please除以时,它抛出一个被0除的算术异常不要给我答案,只是想理解它并提高我的技能谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-27 06:23:42

我的猜测是,s正在溢出,最终导致除以零。改为将s设置为long

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12611149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档