int main() { int n,m,num2,num3,num5,num7,num9; int table[4][4]={6,2,4,8,1,3,9,7,1,7,9,3,1,9,1,9}; while(scanf("%d%d",&n,&m)!=EOF) { num2=get2(n)-get2(n-m); num5=get5(n)-get5(n-m); num3=getx(n,3)-getx(n-m,3); num7=getx(n,7)-getx(n-m,7); num9=getx(n,9)-getx(n-m,9); if(num2<num5) { printf("5\n"); continue; } int result=1; if(num2!=num5) { result*=table[0][(num2-num5)%4]; } result*=table[1][num3%4]; result*=table[2][num7%4]; result*=table[3][num9&1]; printf("%d\n",result%10); } return 0; }
bool is_same13(const uint8_t *p, const uint8_t *q) { return (get8(p) ^ get8(q)) | (get5(p + 8) ^ get5(q + 8)); }
bool is_same5(const uint8_t *p, const uint8_t *q) { return get5(p) ^ get5(q); }
int test_add() { return add(10, get5()); }
int get5(int n) { if(n==0) return 0; return n/5+get5(n/5); }