【发布时间】:2011-08-15 07:07:41
【问题描述】:
我正在尝试找到数字 600851475143 的最大素因子。我的代码适用于我测试的较小数字(低于 100)。然而,当遇到 600851475143 时,它返回 4370432,绝对不是素数。任何想法我的代码可能有什么问题?
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
int main()
{
int num;
int largest;
int count;
cout<<"Please enter a number to have its Largest Prime Factor found"<<endl;
cin>>num;
num = 600851475143;
for (int factor = 1; factor <= num; factor++)
{
if (num % factor == 0)
{
count = 0;
for (int primetest=2; count == 0 && factor > primetest ; primetest++)
{
if (factor % primetest == 0)
count ++;
//endif
}
if (count == 0)
largest = factor;
//endif
}
}//endif
cout<<largest<<endl;
system("PAUSE");
}
【问题讨论】:
-
在搜索要因子的数字时,您会发现很多关于 Project Euler 问题 3 的讨论,stackoverflow.com/search?tab=newest&q=600851475143
标签: c++ prime-factoring