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


假設我們給定一個函式,例如 f(x) = (x^6 + x^2 + 9894845) % 971,現在對於給定的 x 值,我們必須找到 f(x) 的值。

因此,如果輸入為 5,則輸出將為 469。

為了解決這個問題,我們將遵循以下步驟 -

  • 定義一個函式 power_mod(),它將接收底數、指數、模數。

  • 底數 := 底數 mod 模數

  • 結果 := 1

  • 當指數 > 0 時,執行 -

    • 如果指數為奇數,則 -

      • 結果 := (結果 * 底數) mod 模數

    • 底數 := (底數 * 底數) mod 模數

    • 指數 = 指數 / 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

更新於: 2020-08-27

75 次檢視

開啟你的 職業生涯

完成課程並獲得認證

開始學習
廣告