#import <cmath>
#import <iostream>
using namespace std;
int main {
int a;
for(int x = 600851475142; x>cmath::sqrt(600851475143); x--) {
if (600851475143%x==0) { //is it a factor of 600851475143?
if p(x) { //is it also a prime?
cout << x;
return 0;
}
}
}
}
bool p(int n) {
for(int x = n; x<cmath::sqrt(n)+1; x++) {
if (n%x==0) {
return false;
}
}
return true;
}
这是我的项目 euler #3 ( http://projecteuler.net/problem=3 ) 的代码。我对 C++ 比较陌生。
基本上我的方法是从 600851475143 开始倒数,测试这个数字是否是 600851475143 的因子,然后看看它是否是素数。如果是则返回号码并退出。但是,当我编译我的代码时,我得到了错误:
error: function definition does not declare parameters
In function 'bool p(int)':
error: 'cmath' has not been declared
任何帮助,将不胜感激