Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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일 때 −

    • 지수가 홀수이면 -

      • 결과 :=(결과 * 기본) 모듈러스

    • base :=(base * base) 모듈러스

    • 지수 =지수 /2

  • 반환 결과

  • 주요 방법에서 다음을 수행하십시오 -

  • return 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