次方求模

次方求模

时间限制: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
来源
[张云聪]原创
上传者

张云聪

参考:http://acm.nyist.net/JudgeOnline/talking.php?pid=102      56楼

我不懂为什么这么做,记着~

#include<iostream>
#include<stdio.h>
using namespace std;
int dy(int m,int n,int p)
{
	if(n==0)
		return 1%p;
	int temp=dy(m,n>>1,p);
	temp=(long long)temp*temp%p;
	if(n&1)
		temp=(long long)temp*m%p;
	return temp;
}
int main()
{
	int T,m,n,p;
	cin>>T;
    while(T--)
	{
       cin>>m>>n>>p;
	   cout<<dy(m,n,p)<<endl;
	}
	return 0;
}        

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 18:24:01

次方求模的相关文章

nyoj 次方求模

次方求模 时间限制: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<cstdio> #include<cstdlib

NYOJ 102 次方求模

次方求模 时间限制: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 算法分析: 大数问题,需要利用快速幂取模算法. 所谓的快速幂,实际上是快速幂取模的缩

次方求模 NYOJ 102

1 #include<stdio.h>//次方求模(102) 2 long long power(int a,int b,int c) 3 { 4 long long t; 5 if(b==0)return 1%c; 6 if(b==1)return a%c; 7 t=power(a,b/2,c); 8 t=t*t%c; 9 if(b&1)return t*a%c; 10 else return t; 11 } 12 int main() 13 { 14 int x; 15 long

nyoj 102 次方求模【快速幂】

次方求模 时间限制: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 注意用long long 型 #include<stdio.h> #def

NYOJ--102--次方求模(快速求幂取模)

次方求模 时间限制: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 1 /* 2 Name: NYOJ--102--次方求模 3 Copyright: ?

关于除以2的n次方求余数的思考

本人由于刚接触编程不久,思考的问题没有大家的那么深入.这次我仅仅只是一点基于学习的思考.今天在家里复习学校学过的功课,关于运算操作符的那一章节.  编写一个程序:从界面输入一个整数,要求求该数除以8后的余数.这个题目确实很简单,只要用%运算即可.但是我写出代码后发现编译器对于负数求模运算后所得的余数是负数.当然大家很容易想到此时加上除数即可达到题目的要求.我想这个代码大都会写,我就不再细述,但是今天我想输得方法并不是此.一个整型(int)占4个字节,每个字节8位.那么每个int占32个位.如果我

杭电ACM 二 数学求模

Font Size: ← → Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). Input The input consists of multiple test cases. Ea

sql 求模 实现 贪婪算法

背景: 最近在维护一个项目, 因新功能需求拓展.  有一个字段存储 一个星期中的几天,可能是全部,也有可能只是其中的星期一, 星期三,等. 因为项目中有一个枚举值, 已作好初始化赋值工作, 而且 客户端开发时直接把组合值合并成一个早已存入这个字段到DB. 我在项目别的地方(动态批量生成月报表时,又需要得到这个具体的频率值. 因为每个月有几个星期一,星期三,不是固定的, 需要动态计算.),  所以, 又需要将其还原为 其中具体对应的 星期一,星期三 等. 这里就需要对这个组合值,进行求模操作. 于

组合数求模

适用于mod为素数 o(N) void init() { int i; pp[0] = 1; for(i = 1; i <= N-10 ; i++) { pp[i] = (pp[i-1]*i)%mod; } } LL fastmod(LL a,LL k) { LL b = 1; while(k) { if(k&1) b = a*b%mod; a = (a%mod)*(a%mod)%mod; k/=2; } return b; } LL calc(int n,int m) { return (