在C ++中找到函数Y =(X ^ 6 + X ^ 2 + 9894845)%981的值

假设我们给定了f(x)=(x ^ 6 + x ^ 2 + 9894845)%971的函数,现在对于给定的x值,我们必须找到f(x)的值。

因此,如果输入为5,则输出为469

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个函数power_mod(),它将采用基数,指数,模数,

  • base:=基本模数

  • 结果:= 1

  • 当指数> 0时,执行-

    • 结果:=(结果*基数)模数

    • 如果指数是奇数,则-

    • 基本:=(基本*基本)模数

    • 指数=指数/ 2

    • 返回结果

    • 从主要方法中执行以下操作-

    • 返回power_mod(n,6,m)+ power_mod(n,2,m))mod m + 355)mod m

    示例

    让我们看下面的实现以更好地理解-

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long int lli;
    lli power_mod(lli base, lli exponent, lli modulus) {
       base %= modulus;
       lli result = 1;
       while (exponent > 0) {
          if (exponent & 1)
             result = (result * base) % modulus;
          base = (base * base) % modulus;
          exponent >>= 1;
       }
       return result;
    }
    int main(){
       lli n = 654654, m = 971;
       cout<<(((power_mod(n, 6, m)+power_mod(n, 2, m))% m + 355)% m);
    }

    输入项

    84562

    输出结果

    450
    猜你喜欢