https://www.luogu.com.cn/article/gsqsqti8
题目大意
这道题呢就是给你两个数,就是和然后让你求
。
证明:分子减一个的倍数,使它变成一个 ,就可以将分子上的消去。
所以我们可以很容易的想到这道题其实就是一道快速幂,但只不过是需要边算边模的快速幂罢了,所以这道题考察的就是数论和快速幂,但同时也要注意要边算边模,否则就会超出数据范围,自然而然答案也就错了。
CODE
#include<bits/stdc++.h>
#define ll long long
#define ri register int
#define N 50005
#define INF 2147483647
#define f(x,k,y,z) for(int x=k;x<=y;x+=z)
using namespace std;
ll n,m,k,jk,ans,sum,num;
ll dis[N],vis[N],wis[N],f[N];
void read(ll &x)
{
x=0;int ff=1;
char ch=getchar();
while (ch<'0'||ch>'9')
{
if(ch=='-') ff=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
x*=ff;return;
}
void write(ll x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
return;
}
ll quik_power(ll base,ll power,ll p)
{
ll result=1;
while(power>0)
{
if(power&1) result=result*base%p;
base=base*base%p;
power>>=1;
}
return result%p;
}
int main()
{
read(n),read(m);
write(quik_power(10,n,m*m)/m%m);
return 0;
}