当前位置: 首页 > 知识库问答 >
问题:

使用长数据类型的无限循环

危卜鹰
2023-03-14

我目前正在做一些项目euler问题,并使用长数据类型为for循环获取无限循环。我通常使用整数,对这种数据类型没有太多经验。?有人能建议如何解决这个问题吗?

问题是:13195的质因数是5、7、13、29,600851475143数最大的质因数是多少?

    public static void main(String[] args) {
        int temp = 15;
        long number = 600851475143L;
        ArrayList<Integer> primeFactors = new ArrayList<Integer>();
        int largest = 0;

        for(long i=2L; i<number; i++)
        {
            if(temp % i == 0)
            {
                if(isPrime(i))
                {
                    primeFactors.add((int) i);
                }
            }
        }

        for (Integer pF:primeFactors)
        {
            if(pF>largest)
            {
                largest = pF;
            }
        }

        System.out.println("The largest prime factor of the number 600851475143 is: " + largest);
    }

    // A prime number is a natural number greater than 1 that is not a product of two smaller natural numbers.
    private static boolean isPrime(long number)
    {
        if (number <= 1)
        {
            return false;
        }

        for (int i = 2; i < number; i++)
        {
            if (number % i == 0)
            {
                return false;
            }
        }

        return true;
    }
}

共有1个答案

鲁涵映
2023-03-14

就像Jon Skeet在评论中提到的那样,这个问题和其他许多project euler问题的要点是,如果你试图用蛮力来解决这些问题,计算结果将花费太长的时间。因此,您需要找到一种更聪明的方法。对于一些project euler问题,存在一些公式,您可以使用这些公式来获得答案,您可以直接实现它们。对于其他人来说,你需要自己想出更好的解决问题的方法。

所以您的问题与数据类型无关。

一般来说,项目欧拉问题至少可以被认为是数学问题,就像编程问题一样。

 类似资料:
  • 问题内容: 我一直在使用React 16.7-alpha中的新钩子系统,并且当我正在处理的状态是对象或数组时陷入useEffect的无限循环中。 首先,我使用useState并使用一个空对象启动它,如下所示: 然后,在useEffect中,我再次使用setObj将其设置为空对象。作为第二个参数,我传递了[obj],希望如果对象的 内容 没有更改,它也不会更新。但是它一直在更新。我猜是因为不管内容如

  • 问题内容: 我正在使用JDBC,需要不断检查数据库是否有更改值。 我目前拥有的是无限循环运行,内部循环迭代更改的值以及针对数据库的每次迭代。 我认为这不是最好的方法。 我在想的另一种方法是反向操作,以保持对数据库的迭代。 更新 感谢您提供有关计时器的反馈,但我认为它不能解决我的问题。一旦数据库中发生更改,我需要立即针对更改的值(示例代码中的“ el”)处理结果。 即使数据库没有更改,它仍然必须不断

  • 我想实现一个无限循环数据集 如您所见,这里的主要挑战是方法。如果我在那里放一个足够大的数字,比如1 如果我在那里放一个小数字,比如1或BATCH_SIZE,训练循环中采样的“数据”将定期重复。这不是我想要的,因为我想产生新的数据 我猜过度使用内存的罪魁祸首是堆栈中的某个地方,缓存了一堆东西。随便看看Python的一面,我就不知道在哪里了。 有人能告诉我什么是实现我想要的最好的方法吗?(使用Data

  • 我试图设置一个自动压力测试,并将随机生成的数据输入Redis,然后让消费者(作为从Redis读取的另一个组件)处理随机数据。 为了模拟随机生成的数据尽可能接近真实世界的计时,我决定将其放入一个无限循环中,并使用EventMachine来处理同步。我不确定我在用EventMachine做什么,但我听说它比不断生成新线程并阻塞主进程要好得多。我这样做对吗? 编辑1 所以我最终用一个线程池来完成它

  • 我在获取数据并使用React呈现它时遇到了问题。当我点击返回单个对象的API时,它可以正常工作,但当我查询新闻API时,即使我限制了要返回的文章数量,它也会继续在无限循环中运行。我正在使用useState保存返回数据并使用useEffects获取它。我做错了什么?这是我的代码。

  • 使用具有Hibernate状态的Spring Data JPA作为提供者导致无限循环的OneTo多国关系 这里的问题不是异常的类型,而是导致这个异常的无限循环 我尝试@JsonIgnoreProperties这给了我另一个错误= 后引用的解决方案没有解决我的问题的解决方案。 一种说法是使用@ JsonManagedReference和@JsonBackReference,这确实停止了递归,但是从结