【欧拉定理】计算(a^(b^c))%1000000007

欧拉定理(称费马-欧拉定理或欧拉 函数定理)

欧拉定理表明,若n,a为正整数,且n,a互素(即gcd(a,n)=1),则

这个定理可以用来简化幂的模运算。比如计算7222的个位数,实际是求7222被10除的余数。7和10互素,且fai(10)=4。由欧拉定理知

 

所以

则对于(ab^c)%1000000007

根据欧拉定理, a的fai(1000000007)和1同余,那么把bc分解成(n*fai(m)+r)的形式,(ab^c) 就变成了 A(n*fai(m)+r),那么就变成了 A(n*fai(m)*Ar,又A(n*fai(m)和1同余,那么只要求Ar即可。

已知fai(m)是同1到与m互质的数的个数,故应为100000006。

时间: 2024-10-29 00:11:39

【欧拉定理】计算(a^(b^c))%1000000007的相关文章

结合《剑指offer(第二版)》面试题51来谈谈归并排序

一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对.要求输出数组A中的逆序对的总数.例如,对于数组{7,5,6,4},一共存在5个逆序对,分别是(7,5).(7,6).(7,4).(5,4).(6,4). 注:根据题意可知,必须根据原数组中元素的相对顺序来统计,给定的数组时怎样,那就按照怎样的顺序. 二.思路分析 方法1:暴力破解.双重循环来判断出所有的逆序对数,时间复杂度为O(N^2),空间复杂度为O(1

ZOJ 3872 计算对答案的贡献

                                               D - Beauty of Array Description Edward has an array A with N integers. He defines the beauty of an array as the summation of all distinct integers in the array. Now Edward wants to know the summation of

ACdreamOJ 1116 斐波那契数列+hash计算后缀

http://acdream.info/problem?pid=1116 Problem Description give you a string, please output the result of the following function mod 1000000007 n is the length of the string f() is the function of fibonacci, f(0) = 0, f(1) = 1... a[i] is the total numb

XMU 1615 刘备闯三国之三顾茅庐(三) 【欧拉函数+快速幂+欧拉定理】

1615: 刘备闯三国之三顾茅庐(三) Time Limit: 1000 MS  Memory Limit: 128 MBSubmit: 45  Solved: 8[Submit][Status][Web Board] Description 刘备(161年-223年6月10日),字玄德,东汉末年幽州涿郡涿县,西汉中山靖王刘胜的后代.刘备一生极具传奇色彩,早年颠沛流离.备尝艰辛最终却凭借自己的谋略终成一方霸主.那么在那个风云激荡的年代,刘备又是如何从一个卖草鞋的小人物一步一步成为蜀汉的开国皇帝呢

hdu4390-Number Sequence(容斥计算)

题意:给定b数列,计算有多少种数列 a1,a2,...,an 满足条件 a1*a2*...*an=b1*b2*-*bn (ai>1). 解法:处理出b数列中出现的所有质因子的数量记录在map中,然后进行容斥计算: 代码: /****************************************************** * author:xiefubao *******************************************************/ #pragma

计算a+aa+aaa+aaaa+...+a...a(n个a) 的和,求解!

这是CSDN上的一个题 题目详情: 给定a和n,计算a+aa+aaa+aaaa+...+a...a(n个a) 的和. 输入描述: 测试数据有多组,以文件结尾.每行输入a,n(1<=a,n<=1000000). 输出描述: 由于结果可能比较大,所以请输出答案mod 1000000007. 答题说明: 输入样例: 1 10 输出样例: 234567893 我的最终结果是: #include #include int main(void) { int a,n,i; while(scanf("

UVA 11076 Add Again 计算对答案的贡献+组合数学

A pair of numbers has a unique LCM but a single number can be the LCM of more than one possiblepairs. For example 12 is the LCM of (1, 12), (2, 12), (3,4) etc. For a given positive integer N, thenumber of di?erent integer pairs with LCM is equal to N

hdu4549---M斐波那契数列(矩阵+欧拉定理)

Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据: 每组数据占一行,包含3个整数a, b, n( 0 <= a, b, n <= 10^9 ) Output 对每组测试数据请输出一个整数F[n],由于F[n]可能很大,你只需输出F[n]对1000000007取模

hdu 4549 M斐波那契数列 矩阵快速幂+欧拉定理

M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗? Input 输入包含多组测试数据:每组数据占一行,包含3个整数a, b,