Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Euler#3 Java项目 公共类问题3{ 公共静态void main(字符串参数[]){ 系统输出打印(primeMod(60085147514L)); } 公共静态双素数模(长d){ 长最大值=0; 整数计数=0; 对于(长i=2;i_Java_Numbers - Fatal编程技术网

Euler#3 Java项目 公共类问题3{ 公共静态void main(字符串参数[]){ 系统输出打印(primeMod(60085147514L)); } 公共静态双素数模(长d){ 长最大值=0; 整数计数=0; 对于(长i=2;i

Euler#3 Java项目 公共类问题3{ 公共静态void main(字符串参数[]){ 系统输出打印(primeMod(60085147514L)); } 公共静态双素数模(长d){ 长最大值=0; 整数计数=0; 对于(长i=2;i,java,numbers,Java,Numbers,我的猜测是s溢出,最终导致被零除。取而代之的是将salong。我的猜测是s溢出,最终导致被零除。取而代之的是将salong。当你遇到异常时,请ost堆栈跟踪的相关部分,至少是异常发生的那一行。我尝试了你的程序,但没有得到异常。你怎么知道它没有被零除?请发布一些输出。当你得到异常时,请发布堆栈跟踪的相关部分,至少是异常发生的那一行。i tried你的程序没有得到异常。你怎么知道它没有被零除?请发布一些输出。这看起来像是问题。如果(x%s==0){这意味着s为零,我在行上得到异常(int s=1;s

我的猜测是
s
溢出,最终导致被零除。取而代之的是将
s
a
long

我的猜测是
s
溢出,最终导致被零除。取而代之的是将
s
a
long

当你遇到异常时,请ost堆栈跟踪的相关部分,至少是异常发生的那一行。我尝试了你的程序,但没有得到异常。你怎么知道它没有被零除?请发布一些输出。当你得到异常时,请发布堆栈跟踪的相关部分,至少是异常发生的那一行。i tried你的程序没有得到异常。你怎么知道它没有被零除?请发布一些输出。这看起来像是问题。如果(x%s==0){这意味着
s
为零,我在
行上得到异常(int s=1;s@Code Guru当s初始化为1??时,s将如何变为零?@chaitanya10,因为s溢出了int的最大值。请尝试向primeCounter()添加SOP)您可以自己查看
s
的值。我通过将其改为long得到了答案。谢谢。这看起来像是个问题。如果(x%s==0){
这意味着
s
为零,我会在
行上得到异常(int s=1;s@Code Guru当s被初始化为1??时,s怎么会变为零?@chaitanya10,因为s溢出了int的最大值。试着给primeCounter()添加一个SOP,自己看看s的值。我把它改为long,得到了答案。谢谢
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;
        }
    }
}