Java 帮助Euler#200项目?

Java 帮助Euler#200项目?,java,Java,可能重复: 类似于 我用Java编写了一个蛮力解决方案,需要几个小时才能运行,并生成了第一个500多个sqube数,我认为这应该足够了。然而,从190到210的答案似乎都不是正确答案 我想知道我在这里做错了什么,以及如何优化它。问题是否存在于biginger.isProbablePrime() 我不确定Stackoverflow是否是问这个问题的最佳地方,但我似乎被卡住了。我已经包括了我的代码和生成的数据 如果有人能给我一些提示或指点,我将不胜感激 编辑:我用前500000个素数再次运行了这

可能重复:

类似于

我用Java编写了一个蛮力解决方案,需要几个小时才能运行,并生成了第一个500多个sqube数,我认为这应该足够了。然而,从190到210的答案似乎都不是正确答案

我想知道我在这里做错了什么,以及如何优化它。问题是否存在于
biginger.isProbablePrime()

我不确定Stackoverflow是否是问这个问题的最佳地方,但我似乎被卡住了。我已经包括了我的代码和生成的数据

如果有人能给我一些提示或指点,我将不胜感激


编辑:我用前500000个素数再次运行了这个程序;花了一天时间运行,但得到了正确答案。

难道你不应该想出一个聪明的解决方案,它不需要一天甚至一个小时运行吗D 我认为问题在于isProbablePrime,它不能保证一个数字就是一个质数。它只是说一个被发现的素数可以是一个具有一定概率的素数。
你应该使用一种算法,确定它已经找到了一个素数。

难道你不应该想出一个聪明的解决方案,它不需要一天甚至一个小时就可以运行吗D 我认为问题在于isProbablePrime,它不能保证一个数字就是一个质数。它只是说一个被发现的素数可以是一个具有一定概率的素数。
你应该使用一种算法,确定它已经找到素数。

第一个答案是不正确的,因为isProbablyPrime并不总是正确的(因此可能是正确的)。它很慢,部分原因是您使用的是BigInteger。所有涉及的值都将适用于一个长期模型。为什么不使用长的?

第一个答案是不正确的,因为isProbablyPrime并不总是正确的(因此可能是正确的)。它很慢,部分原因是您使用的是BigInteger。所有涉及的值都将适用于一个长期模型。为什么不使用一个长的?

我是一个项目管理员。请不要发布可能破坏他人问题的信息,尤其是代码和答案,甚至是半功能代码。请相应地编辑您的问题。编辑:谢谢你这么做

解决问题的人使用网络搜索解决问题的信息并不罕见,如果他们偶然发现这样一个破坏者,就会失去一些乐趣。(是的,我知道有些网站有很多现成的解决方案,但至少它们通常是针对简单的问题。)


我们有很多方法来讨论问题的困难和获取提示,这些都是为破坏者积极编辑的。

我是一名项目管理员。请不要发布可能破坏他人问题的信息,尤其是代码和答案,甚至是半功能代码。请相应地编辑您的问题。编辑:谢谢你这么做

解决问题的人使用网络搜索解决问题的信息并不罕见,如果他们偶然发现这样一个破坏者,就会失去一些乐趣。(是的,我知道有些网站有很多现成的解决方案,但至少它们通常是针对简单的问题。)


我们有很多方法来讨论问题的困难和获取提示,这些都是为破坏者积极编辑的。

您可以做一些简单的重构来节省一些时间。似乎大部分时间都花在嵌套for循环中。数量级是n的平方。您可以通过不嵌套循环来降低复杂性。另一个问题是,您正在发现比所需的更多的潜在结果。你只需要找到200个。您需要查找更多的原因是因为您没有按数字顺序查找潜在结果。TreeSet确实会保持结果的有序性,但如果能够在找到第200个结果时停止,则算法会更快。

您可以进行一些简单的重构,以节省一些时间。似乎大部分时间都花在嵌套for循环中。数量级是n的平方。您可以通过不嵌套循环来降低复杂性。另一个问题是,您正在发现比所需的更多的潜在结果。你只需要找到200个。您需要查找更多的原因是因为您没有按数字顺序查找潜在结果。树集确实能保持结果的有序性,但如果能在第200个结果被发现时停止,算法会更快。

你知道,前几天我在想,我们已经好几个星期没有看到Euler问题了。现在,一个出现了。幽灵般的如果这是“那个问题”的翻版,你为什么还要再发一次?你只是想打架吗?:-)不完全是。另一个是几个月前的,似乎有不同的意图。然后你愚蠢地说这是一个完全复制品。我建议你改变它。isProbablePrime——顾名思义——不确定。你应该做些别的事情,比如用Erastothenes的筛子生成前n个素数,然后用它们检查一个数字。你知道,前几天我在想,我们已经好几个星期没有看到Euler问题了。现在,一个出现了。幽灵般的如果这是“那个问题”的翻版,你为什么还要再发一次?你只是想打架吗?:-)不完全是。另一个是几个月前的,似乎有不同的意图。然后你愚蠢地说这是一个完全复制品。我建议你改变它。isProbablePrime——顾名思义——不确定。你应该做一些其他的事情,比如用Erastothenes的筛子生成前n个素数:然后用它们检查一个数字。isProbablyPrime的要点是,它比更确定的算法要快得多;此外,精度级别可以调整得足够高,以使蛮力计算更有可能出错