快速幂算法
最小公倍数=a*b/最大公约数;
描述:求a的b次方模c后的值
算法:
公式1:ab mod c = (a mod c)c mod c;// b次方
公式2:

算法实现:
#include<cstdio> #include<iostream> #include<algorithm> using namespace std; int quickMod(int a, int b, int c) { int ans = 1; a = a % c; while(b > 0) { if(b % 2 == 1) //如果b是奇数,a最后还要乘一次 ans = (ans * a) % c; b = b/2; //b取一半 a = (a * a) % c; //a平方,模c可以减少计算量 } return ans; } int main() { int a, b; while(cin >> a >> b) { cout << quickMod(a, b, 10) << endl; } return 0; }

浙公网安备 33010602011771号