まず、私はこのプロジェクトを学校で行っていますが、外部ライブラリの使用が許可されていないため、GMP などは使用できません。問題は、「難しい」計算が必要な関数があることです。つまり、
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) 関数が正しい値を返しません。これに対する回避策はありますか? 繰り返しますが、外部ライブラリは使用しません。