#136. 数论【NOIP2017】快速幂

数论【NOIP2017】快速幂

2. 【NOIP2017】快速幂

使用分治法求 xpmodm x^p \mod m 的值。输入三个不超过10000的正整数 x,p,m x, p, m ,输出 xpmodm x^p \mod m 的值。

补全程序:

#include<iostream>
using namespace std;
int x, p, m, result;

int main() {
    cin >> x >> p >> m;
    result = ①;
    while (②) {
        if (p % 2 == 1)
            result = ③;
        p /= 2;
        x = ④;
    }
    cout << ⑤ << endl;
    return 0;
}

选择题:

  1. ①处应填( )
    {{ select(1) }}
  • 0
  • 1
  • p/2
  • p-1/2
  1. ②处应填( )
    {{ select(2) }}
  • p==1
  • x
  • p/2!=0
  • p>0
  1. ③处应填( )
    {{ select(3) }}
  • result%m
  • x%m
  • result*x%m
  • result*result
  1. ④处应填( )
    {{ select(4) }}
  • x*x
  • x*x%m
  • x%m
  • x*x%result
  1. ⑤处应填( )
    {{ select(5) }}
  • x
  • m
  • p
  • result