【发布时间】:2014-04-09 22:50:03
【问题描述】:
在我的程序中,我试图找出数字 600851475143 的最大素数。我制作了一个 for 循环来确定该数字的所有因数并将它们存储在向量数组中。我遇到的问题是我不知道如何确定该因子是否可以平方根并给出整数而不是小数。到目前为止,我的代码是:
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
vector <int> factors;
int main()
{
double num = 600851475143;
for (int i=1; i<=num; i++)
{
if (fmod(num,i)==0)
{
factors.push_back(i);
}
}
for (int i=0; i<factors.size(); i++)
{
if (sqrt(factor[i])) // ???
}
}
有人可以告诉我如何通过我的 if 语句确定一个数字是否可以平方根吗?
【问题讨论】:
-
问题是欧拉项目编号。 3、最后在这里讨论:stackoverflow.com/q/22153481/3088138
标签: c++ arrays loops math sqrt