这是代码:
#include <iostream>
#include <ctype.h>
#include <iomanip>
using namespace std;
class Project3
{
public:
void factorcalc()
{
while (i<5000000){
++i;
factor = prime/i;
if (factor == (long long int)factor){
//if (modf(primeoverthree, 0) == 0){
cout << "Factor is: " << setprecision(12) << factor << endl;
cout << "Denominator is: " << setprecision(12) << i << endl;
++x;
factorarray[x] = factor;
}
else{/*empty else statement*/}
}
}
void displayfactorresults ()
{
for (x=0; x<9; ++x)
if (factorarray[x]%2 == 0 && factorarray[x]%3 == 0 && factorarray[x]%5 == 0 && factorarray[x]%7 == 0){
cout << factorarray[x] << setprecision(12) << endl;
}
}
private:
long double factor = 1;
long double prime = 600851475143;
long double i = 0;
int x = 0;
long double factorarray[9];
};
int main() {
Project3 Pro3;
Pro3.factorcalc();
Pro3.displayfactorresults();
return 0;
}
该代码是对 projecteuler.net 上的项目 3 的响应。我正在尝试使用 c++ 和常识的基本知识来找到 600851475143 的最大素数。
函数中发生错误void displayfactorresults
。
编译器输出错误信息:
“二进制表达式'long-double'和'long-double'的无效操作数”