ac数论之n次方取模

原创 2018年04月15日 16:58:44

次方求模

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

求a的b次方对c取余的值

 

输入
第一行输入一个整数n表示测试数据的组数(n<100)
每组测试只有一行,其中有三个正整数a,b,c(1=<a,b,c<=1000000000)
输出
输出a的b次方对c取余之后的结果
样例输入
3
2 3 5
3 100 10
11 12345 12345
样例输出
3
1

10481

#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
int pow(long long int a,long long int n,long long int b)
{//快速幂求模
    a=a%b;//初始化化底数取模
    int result=1;
    while(n>0)
    {
        if(n%2==1)//如果是n
            result=result*a%b;//多乘一次取模
        a=a*a%b;//相乘取模
        n=n/2;//左移一位
    }
    return result;
}
int main()
{
    int n;
    scanf("%d",&n);
    while(n--)
    {
        long long int a,n,b;
        scanf("%lld%lld%lld",&a,&n,&b);//读入三个数
        printf("%d\n",pow(a,n,b));
    }
    return 0;
}

java 快速幂取模算法

当我们计算AB%C的时候,最便捷的方法就是调用Math函数中的pow方法,但是有时A的B次方数字过大,即使是双精度的double也会溢出,这个时候为了得到AB%C的结果,我们会选择使用快速幂取模算法,...
  • QuinnNorris
  • QuinnNorris
  • 2017-08-25 21:31:46
  • 1625

快速幂取模算法详解

1.大数模幂运算的缺陷: 快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算过程中最麻烦的就是我...
  • ltyqljhwcm
  • ltyqljhwcm
  • 2016-11-05 10:40:41
  • 20695

模运算------x的y次方再模n

问题描述:ax mod n (a的x次方再模n)求结果,对小数量的求模一般数据类型可以应付,但是当x很大时就会产生很大的中间结果。我们希望加速运算并且不产生大结果。 我们知道模运算满足分配率,(a*...
  • sqx2011
  • sqx2011
  • 2012-11-30 01:13:11
  • 2331

【算法】求n的m次方(快速幂取模)

题目求n的m次方,n,m均为自然数。解析看似简单的题目,但是要想写的高效还不是那么容易想出来。实现unsigned int power(unsigned int a, unsigned int n) ...
  • z702143700
  • z702143700
  • 2015-10-14 22:49:32
  • 1920

除数为2的N次方取模可以用与运算替代,效率更高

取模运算在包括JAVA在内的大多数语言中的效率都十分低下,而当除数为2的N次方时,取模运算将退化为最简单的位运算,其效率明显提升(按照Bruce Eckel给出的数据,大约可以提升5~8倍) 。看看J...
  • zccracker
  • zccracker
  • 2017-01-12 16:00:54
  • 560

a的b次方对n取模

依据《算法导论》(第二版中文版,机械工业出版社出版)第539页的算法来实现,速度非常快。即使是对非常大的参数也是如此#includeusing namespace std;int f(int a,in...
  • yebangyu
  • yebangyu
  • 2010-12-21 11:05:00
  • 391

取模运算总结 - 数论

- 编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。 - 例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取...
  • deaidai
  • deaidai
  • 2017-07-31 23:32:03
  • 1043

数论专题小结:取模运算模板

1.大整数取模 (1)题意:输入正整数n,m,输出n mod m的值。n≤10^100,m≤10^9。 (2)思路:把大整数拆开,逐步取模。 #define N 1000+10 char n[N]; ...
  • u014800748
  • u014800748
  • 2015-02-27 17:28:26
  • 465

关于对2取模的误区

先来看个知识点,有一个数N,设MOD = N & 1,则MOD就是N % 2的结果。&就是按位与的意思,来举个生动的例子。     N = 3,N转换成2进制就是11,将这个11与1按位与,将1高位不...
  • Royecode
  • Royecode
  • 2015-06-27 12:14:26
  • 618

求一个数n次方后的末尾数(数论/快速幂)

问题描述 hdu1061-Rightmost Digit hdu1097-A hard puzzle 这两个oj题目思路几乎一样,都是为了快速求出一个数n次方后的末尾数为都多少? 解题思路 1的所有...
  • yanqianglifei
  • yanqianglifei
  • 2017-08-31 10:04:27
  • 770
收藏助手
不良信息举报
您举报文章:ac数论之n次方取模
举报原因:
原因补充:

(最多只允许输入30个字)