快速幂取模的运算

 1 //快速幂取模,
 2 #include <iostream>
 3 
 4 using namespace std;
 5 //1.
 6 //a^n%b
 7 int modExp(int a, int n, int b)
 8 {
 9     int t,y;
10     t=1;y=a;
11     while (n)
12     {
13         if (n&1) t=t*y%b;//若n为偶数;
14         y=y*y%b;
15         n>>=1;
16     }
17     return t;
18 }
19 //2.利用a^n%c = (((a%c)*a)%c......)
20 int modexp_simple(int a,int n,int b) 
21 { 
22     int ret = 1; 
23     while (n--) 
24     { 
25         ret = a * ret % b; 
26     } 
27     return ret; 
28 }
29 int main()
30 {
31     int a,n,b;
32     while (cin>>a>>n>>b)
33     {
34         cout<<modExp(a,n,b)<<endl;
35         cout<<modexp_simple(a,n,b)<<endl;
36     }
37 
38     return 0;
39 }

 

转载于:https://www.cnblogs.com/zhuy/archive/2012/07/26/2609588.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值