0

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

4

2 に答える 2