#include <iostream>
using namespace std;
void whosprime(long long x)
{
bool imPrime = true;
for(int i = 1; i <= x; i++)
{
for(int z = 2; z <= x; z++)
{
if((i != z) && (i%z == 0))
{
imPrime = false;
break;
}
}
if(imPrime && x%i == 0)
cout << i << endl;
imPrime = true;
}
}
int main()
{
long long r = 600851475143LL;
whosprime(r);
}
我试图找到欧拉项目中问题 3指定的数字 600851475143 的素因数(它要求最高的素因数,但我想找到所有这些素数)。但是,当我尝试运行这个程序时,我没有得到任何结果。这是否与我的程序需要多长时间才能处理这么大的数字,甚至与数字本身有关?
另外,有什么更有效的方法可以解决这个问题,你有什么提示可以帮助我在解决问题时转向这些更优雅的解决方案吗?
一如既往,谢谢!