欧拉计画的问题3是:
13195的主要因子是5、7、13和29。
600851475143的最大素数是多少?
我的解决方案需要永远。我认为我得到了正确的实施;但是,在进行大量测试时,我无法看到结果。它永远运行。我想知道我的算法是否有问题:
public class LargestPrimeFactor3 {
public static void main(String[] args) {
long start, end, totalTime;
long num = 600851475143L;
long pFactor = 0;
start = System.currentTimeMillis();
for(int i = 2; i < num; i++) {
if(isPrime(i)) {
if(num % i == 0) {
pFactor = i;
}
}
}
end = System.currentTimeMillis();
totalTime = end - start;
System.out.println(pFactor + " Time: "+totalTime);
}
static boolean isPrime(long n) {
for(int i = 2; i < n; i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
}
尽管不是Java语言,但我认为您可以做到以下几点。基本上,只需要测试奇数除数就可以减少迭代次数,并且最多可以减少数字的平方根。这是一种蛮力方法,可在C#中立即给出结果。
static bool OddIsPrime (long oddvalue) // test an odd >= 3
{
// Only test odd divisors.
for (long i = 3; i <= Math.Sqrt(oddvalue); i += 2)
{
if (value % i == 0)
return false;
}
return true;
}
static void Main(string[] args)
{
long max = 600851475143; // an odd value
long maxFactor = 0;
// Only test odd divisors of MAX. Limit search to Square Root of MAX.
for (long i = 3; i <= Math.Sqrt(max); i += 2)
{
if (max % i == 0)
{
if (OddIsPrime(i)) // i is odd
{
maxFactor = i;
}
}
}
Console.WriteLine(maxFactor.ToString());
Console.ReadLine();
}
问题: 13195的质因数是5、7、13、29。 数字600851475143中最大的素因子是什么? 我发现这个很简单,但运行这个文件花了很长时间,已经运行了一段时间,我得到的最高数字是716151937。 这是我的代码,我只是要等待还是我的代码中有错误? }
问题内容: 13195的素数是5、7、13和29。600851475143的最大素数是多少? 好的,所以我正在研究python中的项目Euler问题3。我有点困惑。我无法确定我通过该程序获得的答案是否正确。如果有人能告诉我即时消息做错了,那太好了! 问题答案: 这个数字很大,不鼓励您使用蛮力。 将在打算把功能号码,这是 一个很大 的内存。 检查数字是否可以除以奇数并不意味着该奇数是质数。您提供的算
问题内容: 该代码应该返回最大的质数。有关此任务的更多信息:https : //projecteuler.net/problem=3 我决定将checkFactors()的参数加倍,因为我试图测试为什么我的代码无法正常工作。 工作并返回“ 29”。 但是, 不起作用, “ int类型的600851475143超出范围”。 确实可以编译,但是在几秒钟后给了我ArithmeticException。
我试图解决欧拉三号工程,但我对停止计算的逻辑相当混乱。 以下是第三个Euler项目: 13195的质因数是5、7、13、29。 600851475143的最大质因数是什么? 我创建了一个函数来检查数字是否为素数: 以及一个函数,用于检查质数是否是该数的一个因子: 唯一的问题是主函数,我正在尝试这样的操作: 我知道逻辑不正确,但我真的坚持了一个多小时。 我知道这里的主要目标是循环,找到一个素数并检查
我正在尝试解决Euler项目中的问题3: 13195的质因数是5、7、13、29。 600851475143的最大质因数是什么? 这是我的代码: 代码没有输出任何东西,它只是给了我一个空白屏幕。请不要帮我解决这个问题,告诉我是什么bug阻止了它输出任何东西。
我的代码: 输出: