Không gì mở đầu câu chuyện tốt hơn miếng trầu – hoặc là một bài toán nho nhỏ.
Những nghệ nhân nick xám Codeforces cho biết, từ thời xa xưa, Vương Hải Thanh đã có lòng đam mê với những bài toán lạ – những bài toán liên quan đến những đôi trai gái tuổi mới lớn… Không hề hão huyền, họ cũng đã đưa cho chúng tôi – những người đi tim huyền thoại – một câu đố mà họ tin do chính huyền thoại T-s-x viết nên. Câu đố như sau:
Cho hai số (n, k). Hãy tính ((k-1)^n + (k-1)(-1)^n) mod 6971.
Input
Dòng đầu tiên ghi số test T (T ≤ 50).
Sau đó là T test, mỗi test gồm 1 dòng ghi 2 số n và k (1 ≤ n, k ≤ 10^9).
Output
Với mỗi test in trên 1 dòng đáp số.
Sample
Input
2 4 4 6 9
Output
84 4225
bài này ở codefun:>>>
mod=6971;
scanf(“%lld”,&t);
for (int i=1;i<=t;i++)
{
scanf(“%lld%lld”,&n,&k);
prd=1; kt1=k-1; t1=-1;
kt1%=mod;
for (int i=1;i<=n;i++)
{
prd=prd*kt1;
prd%=mod;
}
if (n%2!=0)
{
prd=prd%mod-kt1;
}
else
{
prd=kt1+prd%mod;
}
if (prd<0)
{
prd+=mod;
}
printf(“%lld\n”,prd%mod);
}
return 0;
}
#include<iostream>
long long int t,n,k,prd,kt1,t1,mod;
int main ()
{
mod=6971;
scanf(“%lld”,&t);
for (int i=1;i<=t;i++)
{
scanf(“%lld%lld”,&n,&k);
prd=1; kt1=k-1; t1=-1;
kt1%=mod;
for (int i=1;i<=n;i++)
{
prd=prd*kt1;
prd%=mod;
}
if (n%2!=0)
{
prd=prd%mod-kt1;
}
else
{
prd=kt1+prd%mod;
}
if (prd<0)
{
prd+=mod;
}
printf(“%lld\n”,prd%mod);
}
return 0;
}