gpt4 book ai didi

java - 欧拉计划 #7 优化

转载 作者:行者123 更新时间:2023-11-29 03:05:43 24 4
gpt4 key购买 nike

我一直在关注一个与欧拉计划问题相关的主题。它们需要大量时间才能完成。 (像 Largest Palindrome 和 10,001st Prime 这样的问题)我希望有一些方法可以优化代码以使其更好。我让它运行了超过 24 分钟,但它没有完成。

public class Seven
{
public static void main(String[] args)
{
//Declare Variables
int primeCount = 0;
int numCount = 1;
int latestPrime = 0;

while(primeCount <= 10001)
{
if(isPrime(numCount))
{
primeCount++;
latestPrime = numCount;
}
numCount++;
}

System.out.println("The 10,001st prime is: " + latestPrime);
}

//This method will determine if a number is prime
public static boolean isPrime(long num)
{
//Check for even number
if(num % 2 == 0)
return false;

//Check for non-prime odd numbers
for(long i = 3; i <= num; i += 2)
{
if(num % i == 0)
return false;
}

//Return that the number is prime
return true;
}

最佳答案

你做了很多重复,你不需要在 for 循环中遍历整个数字,直到平方根为止。

这会在一秒钟内运行。

 // Check for non-prime odd numbers
for (long i = 3; i <= Math.sqrt(num) +1; i += 2) {
if (num % i == 0)
return false;
}

如果你想进一步优化,你可以将质数存储在一个数组中,并且只检查这个数是否可​​以被前面的质数整除。

关于java - 欧拉计划 #7 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32283126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com