1. 程式人生 > >hpuoj 【1037】一個簡單的數學題【同餘定理】

hpuoj 【1037】一個簡單的數學題【同餘定理】

1037: 一個簡單的數學題 [數學]

時間限制: 1 Sec 記憶體限制: 128 MB

提交: 255 解決: 40 

題目描述

小明想要知道a^b的值,但是這個值會非常的大。

所以退而求其次,小明想讓你幫他求出(a^b)%c的值。

輸入

第一行為一個數n;表示有n組資料。

每組資料有三個整數a,b,c;啊,吧,a,b

1a,b,c50000

1n1100

輸出

每組資料有一行輸出:輸出(a^b)%c;

樣例輸入

2
2 3 3
2 3 2

樣例輸出

2
0


解析:
     如果先計算a^b,那麼很可能會溢位,我們可以運用一下同餘定理。(ps:同餘定理:點選開啟連結
) 程式如下:
#include<cstdio>
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int a,b,c;
		scanf("%d%d%d",&a,&b,&c);
		long long t=1;
		a=a%c;
		for(int i=1;i<=b;i++)
		{
			t=t*a;
		    t=t%c;
		}	
		printf("%lld\n",t);
	}
	return 0;
}