51Nod 1046 A^B Mod C(日常复习快速幂)

1046 A^B Mod C

基准时间限制:1 秒 空间限制:131072 KB 分值: 0

难度:基础题

给出3个正整数A B C,求A^B Mod C。

例如,3 5 8,3^5 Mod 8 = 3。

Input

3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)

Output

输出计算结果

Input示例

3 5 8

Output示例

3

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1046

分析:自己复习快速幂,忘得差不多了!

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 inline ll read()
 5 {
 6     ll x=0,f=1;
 7     char ch=getchar();
 8     while(ch<‘0‘||ch>‘9‘)
 9     {
10         if(ch==‘-‘)
11             f=-1;
12         ch=getchar();
13     }
14     while(ch>=‘0‘&&ch<=‘9‘)
15     {
16         x=x*10+ch-‘0‘;
17         ch=getchar();
18     }
19     return x*f;
20 }
21 ll qpow(ll x,ll p,ll c)
22 {
23     ll ret=1;
24     for(;p;p>>=1,x=x*x%c)
25     {
26         if(p&1)
27         ret=ret*x%c;
28     }
29     return ret;
30 }
31 int main()
32 {
33     ll x,p,c;
34     x=read();
35     p=read();
36     c=read();
37     ll ans=qpow(x,p,c);
38     cout<<ans<<endl;
39 }
时间: 2024-12-13 10:41:15

51Nod 1046 A^B Mod C(日常复习快速幂)的相关文章

51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)

1004 n^n的末位数字 题目来源: Author Ignatius.L (Hdu 1061) 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字. Input 一个数N(1 <= N <= 10^9) Output 输出N^N的末位数字 Input示例 13 Output示例 3 题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!pr

[2016-05-09][51nod][1046 A^B Mod C]

时间:2016-05-09 21:28:03 星期一 题目编号:[2016-05-09][51nod][1046 A^B Mod C] 题目大意:给出3个正整数A B C,求A^B Mod C. 分析:直接快速幂 #include<stdio.h> using namespace std; typedef long long ll; ll pow_mod(ll a,ll p,ll mod){ ll ans = 1; while(p > 0){ if(p & 1){ ans = (

计算幂 51Nod 1046 A^B Mod C

给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 #include <iostream> #include <stdio.h> using namespace std; long long a,b,c; long long mod(long long a,

51Nod 1046 A^B Mod C Label:快速幂

给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 代码 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #def

1046 A^B Mod C(快速幂取模)

1046 A^B Mod C(51NOD基础题) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 /* 1046 A^B Mod C(快速幂取模) 给出3个正整数A B C,求A^B Mod C. (

1046 A^B Mod C

1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 -------------- 快速幂 */ import java.util.Scanner; public class Main1 { stati

51 nod 1046 A^B Mod C(快速幂取余)

1046 A^B Mod C 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 给出3个正整数A B C,求A^B Mod C. 例如,3 5 8,3^5 Mod 8 = 3. Input 3个正整数A B C,中间用空格分隔.(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 相关问题 X^A Mod P 320 X^2 Mod P 10 X^A Mod B 640 X^3 Mod

【Best Coder】#29 B GTY&#39;s birthday gift(快速幂|mod的时候记得负!)

题目大意:查看相关场次即可看到. 思路:推公式的题目,可以用快速幂加公式快速解决,也可以用二进制拆分运算的方法加快速度. 需要注意的一点在于:今后在mod之后有涉及到运算的都要加上一个mod之后再mod,或者统一都加一个mod 顺便复习一下二进制拆分的方法!! 二进制拆分的做法AC代码: #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<cstdio> usin

51nod 1013快速幂 + 费马小定理

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1013 这是一个等比数列,所以先用求和公式,然后和3^(n+1)有关,有n比较大,所以用快速幂来解决,又有/2的操作,所以可以用费马小定理取逆元. #include<map> #include<queue> #include<stack> #include<cmath> #include<cstdio> #include&