java - 为什么我的程序找不到第 10001 个素数? [项目欧拉问题7]

标签 java primes

我的问题是我的程序找不到第 10001 个素数。所以它永远不会停止,而我仍然不知道第 10001 个素数。我很乐意通过我的实现来解决问题。谢谢:)

public class problem7 {

    public static boolean sonuc=true;

    public static void asalmi(int j)
    {
        int counter=0;
        int asayac=0;

        for(int k=1;k<=j;k++)
        {
            if(j%k==0)
            {
                counter++;
            }
        }
        if(counter==2)
        {
            // Only factors are 1 and j, so j is prime
            System.out.println(j);
            asayac++;
            counter=0;
            if(asayac==10001)
            {
                System.out.println(j);
                sonuc=false;
            }
        }
    }

    public static void main(String[] args) 
    {
        int i=1;
        while(sonuc)
        {
            asalmi(i);
            i++;
        }
    }
}

最佳答案

每次调用asalmi时,都会将局部变量asayac设置为0。这应该是一个静态变量,而不是局部变量。

关于java - 为什么我的程序找不到第 10001 个素数? [项目欧拉问题7],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175253/

相关文章:

java - Spring想要使用@Resource调用默认构造函数

java - 如何为不同的变量创建多个控制台输入?

java - Android,未经许可或签名重启设备

c - 为什么这个质因数分解算法有缺陷却给出了正确的答案?

c - Miller-Rabin 实现中的错误

java - 计算每个数字在整数的质因数中的出现次数

java - 计算质数直到 N

java - 将多个对象作为服务结果的最佳方法

java - 将每行排序的二维数组转换为一维数组,并使用迭代器打印出值

c - 分段故障核心转储: Function that returns the next prime number