首先,我正在为学校做这个项目,我们不允许使用外部库,因此我不能使用像 GMP 这样的东西。问题是,我有一个需要一些“艰难”计算的函数。IE,
m^e mod n
这是我的代码
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int e = 17, n = 3233, m = 65;
long double p, mod;
p = pow(m, e); // Gives 6.59974e+30 which is correct
mod = fmodl(p, n);
cout<<mod; // Gives 887, When the correct answer is 2790
return 0;
}
如您所见,fmod (fmodl) 函数没有返回正确的值,是否有解决方法?再次,不使用任何外部库。