计算幂 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,long long b,long long c)
{
    if(b==1) return a%c;
    long long z;
    z=((a%c)*(a%c))%c;
    if(b%2==1){
        z=(a*mod(z,b/2,c))%c;
        return z;
    }
    else  return mod(z,b/2,c);
}
int main()
{
    while(scanf("%lld%lld%lld",&a,&b,&c)!=EOF){
        printf("%lld\n",mod(a,b,c));
    }
    return 0;
}

  

时间: 2024-08-06 00:14:24

计算幂 51Nod 1046 A^B Mod C的相关文章

[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(日常复习快速幂)

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#!prob

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. (

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

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

SICP:对数步数内迭代计算幂的函数

在SICP 32(48)页 根据书中给出的关系 (bn/2)2=(b2)n/2 ,并且使用一个不变量记录中间结果,写出对数步数内迭代计算幂的函数: 方法一(not me): ;;; 16-fast-expt.scm (define (fast-expt b n) (expt-iter b n 1)) (define (expt-iter b n a) (cond ((= n 0) a) ((even? n) (expt-iter (square b) (/ n 2) a)) ((odd? n)

【51NOD-0】1046 A^B Mod C

[算法]快速幂运算 [题解]快速幂的原理是把幂用二进制表示,从最低位a,次低位a2,次次低位(a2)2. #include<cstdio> long long quick_pow(long long a,long long b,long long c) { long long ans=1; while(b>0) { if(b%2)ans=(ans*a)%c; b/=2; a=(a*a)%c; } return ans; } int main() { long long a,b,c; sc

10、计算幂方

package jianzhi_offer; import java.util.Stack; public class Pow_a { //加快了时间效率 public static long Pow_a(int n,int a){ //或者与1做位运算,然后对数据进行向右移动,向右移动的时候注意要转换为无符号数,同时注意考略无符号数和有符号的幂是互为倒数的,还有double的判断等于号等细节问题,还有非法输入问题等. if(n%2==1){ if(n==1) return a; else re