#include<stdio.h>
int get(int n,int x)
{
int s=0;
while(n)
{
s+=n/x;
n/=x;
}
return s;
}
int g(int n,int x)
{
if(n==0)return 0;
return n/10+(n%10>=x)+g(n/5,x);
}
int getodd(int n,int x)
{
if(n==0)return 0;
return getodd(n/2,x)+g(n,x);
}
int tab2[4]={6,2,4,8};
int tab3[4]={1,3,9,7};
int tab7[4]={1,7,9,3};
int tab9[4]={1,9,1,9};
int main(){
int n,i,k,m,a1,a2,ans;
while(~scanf("%d%d",&n,&m))
{
int get2=get(n,2)-get(n-m,2);
int get5=get(n,5)-get(n-m,5);
if(get2<get5)
{
printf("5\n");
continue;
}
int get3=getodd(n,3)-getodd(n-m,3);
int get7=getodd(n,7)-getodd(n-m,7);
int get9=getodd(n,9)-getodd(n-m,9);
ans=tab3[get3%4]*tab7[get7%4]*tab9[get9%4]%10;
if(get2>get5)
ans=ans*tab2[(get2-get5)%4]%10;
printf("%d\n",ans);
}
return 0;
}
POJ1150 The Last Non-zero Digit
最新推荐文章于 2019-10-06 08:10:49 发布