P1226快速幂||取余运算

一.题目描述:

 

 二.解题思路:

简单快速幂和取余运算

三.代码实现:

 1 #include "bits/stdc++.h"
 2 using namespace std;
 3 int main()
 4 {
 5     long long int a,b,p;
 6     long long int ans = 1;
 7     cin >> a >> b >> p;
 8     cout << a << "^" << b << " " << "mod" << " " << p <<"=";
 9     long long int base = a;
10     while(b)
11     {
12         if(b & 1)
13         {
14             ans *= base;
15             ans %= p;
16         }
17         base *= base;
18         base = base % p;//
19         b = b >> 1;
20     }
21     if(p == 0)
22         cout << 0;
23     else 
24         cout << ans % p;//ans=ans%p; 来处理当p=0而b=1
25     return 0;
26 }

 

posted @ 2022-01-12 16:48  scannerkk  阅读(33)  评论(0)    收藏  举报