Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Java程序在9930后停止读取素数?_Java - Fatal编程技术网

Java程序在9930后停止读取素数?

Java程序在9930后停止读取素数?,java,Java,我用埃拉霍斯特尼斯筛法每行打印8个数字。我不知道出了什么问题,因为在输出中我找不到I*multiplier=9949(例如,一个素数),所以它应该输出,但它没有 import java.lang.Math; public class Primes{ public static void isPrime(int number){ int[] primes = new int[number+1]; for(int i = 0; i <= number;

我用埃拉霍斯特尼斯筛法每行打印8个数字。我不知道出了什么问题,因为在输出中我找不到
I*multiplier=9949
(例如,一个素数),所以它应该输出,但它没有

import java.lang.Math;

public class Primes{
    public static void isPrime(int number){
        int[] primes = new int[number+1];
        for(int i = 0; i <= number; i++){
            primes[i] = i;
        }
        for(int i = 2; i < Math.sqrt(number); i++){
            for(int multiplier = 2; i*multiplier <= number; multiplier++){
                primes[i*multiplier] = 0;
            }
        }
        primes[1] = 0;
        int linecounter = 0;
        for(int i = 0; i <= number; i++){
            if(primes[i]!=0){
                System.out.format("%d ", i);
                linecounter++;
                if(linecounter%8==0)
                    System.out.println();
            }
        }
    }
    public static void main(String[] args){
        int number = 10000;
        isPrime(number);
    }
}
你的代码是。几乎可以肯定的是,问题出在终端上(或者是如何捕获输出)

当我运行您的代码时,我得到:

2 3 5 7 11 13 17 19 
23 29 31 37 41 43 47 53 
...
9803 9811 9817 9829 9833 9839 9851 9857 
9859 9871 9883 9887 9901 9907 9923 9929 
9931 9941 9949 9967 9973 

我运行代码,它可以工作。在许多其他方面,我看到了9949的产量。最有可能的原因是您的运行配置或某些东西吞掉了您的输出,或者您正在寻找错误的位置。在末尾添加一个额外的
println
,您只是缺少最后一行。不,他没有
这里是我的输出9601 9613 9619 9623 9629 9631 9643 9649 9661 9677 9679 9689 9697 9719 9721 9733 9739 9749 9767 9769 9781 9787 9791 9803 9811 9817 9829 9833 9839 9851 9857 9859 9871 9883 9887 9901 9907 9923 9929 9931 9941 9949 9967的最后几行9973@cool你在自相矛盾。问题中缺少您发布的行。在where@Mat的末尾?
2 3 5 7 11 13 17 19 
23 29 31 37 41 43 47 53 
...
9803 9811 9817 9829 9833 9839 9851 9857 
9859 9871 9883 9887 9901 9907 9923 9929 
9931 9941 9949 9967 9973