#include<algorithm>
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<ctime>
#include<map>
#include<deque>
#include<set>
#define pi M_PI
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define FO(i,a,b) for(int i=a;i<b;i++)
#define FORD(i,a,b) for(int i=a;i>=b;i--)
#define FOD(i,a,b) for(int i=a;i>b;i--)
#define LL long long
#define fi first
#define se second
#define maxn 1e5
#define oo 1e18
#define sc(x) scanf("%d",&x)
#define lb(v,t) lower_bound(v.begin(),v.end(),t)
#define ub(v,t) upper_bound(v.begin(),v.end(),t)
#define pb push_back
#define bs(v,t) binary_search(v.begin(),v.end(),t)
#define FILEIN freopen("inp.txt","r",stdin)
#define FILEOUT freopen("out.txt","w",stdout)
using namespace std;
LL P, Q;
int s, t;
string chuyen(LL x){
string s1 = "";
if (x == 0) return "0";
while(x > 0){
s1 = s1 + char(x%10 + '0');
x/=10;
}
reverse(s1.begin(),s1.end());
return s1;
}
void sub12(){ // O(n)
string s1 = "";
LL res = 0;
P %= Q;
while(s1.length() <= t){
if(P == 0) break;
P *= 10;
res = P/Q;
s1 += chuyen(res);
P = P % Q;
}
res = 0;
//cout << s1 << endl;
s1 = "0" + s1;
int l = s1.length() - 1;
t = min(t, l);
for(int i = s; i <= t; i++)
res = (res + (s1[i] - '0') % Q) % Q;
cout << res << endl;
}
void sub3(){
vector <int> du,thuong;
P %= Q;
du.pb(P);
int dem = 0, vt = 0;
while(P != 0 && dem < 10000){
int x = Q/P;
if(lb(du,(P * (x + 1)) % Q) != du.end()){
vector <int> :: iterator it;
it = lb(du,(P * (x + 1)) % Q);
if(*it == (P * (x + 1)) % Q){
vt = it - du.begin();
break;
}
}
du.pb((P * (x + 1)) % Q);
thuong.pb(P * (x + 1)/Q);
dem ++;
}
for(int i = vt; i < thuong.size() ; i++)
cout << thuong[i];
}
int main(){
freopen("frac.inp","r",stdin);
freopen("frac.out","w",stdout);
int test;
cin >> test;
while(test--){
cin >> P >> Q >> s >> t;
sub12();
}
return 0;
}
I2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxjbWF0aD4KI2luY2x1ZGU8Y3N0cmluZz4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8Y3RpbWU+CiNpbmNsdWRlPG1hcD4KI2luY2x1ZGU8ZGVxdWU+CiNpbmNsdWRlPHNldD4KI2RlZmluZSBwaSBNX1BJCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSBGTyhpLGEsYikgZm9yKGludCBpPWE7aTxiO2krKykKI2RlZmluZSBGT1JEKGksYSxiKSBmb3IoaW50IGk9YTtpPj1iO2ktLSkKI2RlZmluZSBGT0QoaSxhLGIpIGZvcihpbnQgaT1hO2k+YjtpLS0pCiNkZWZpbmUgTEwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBtYXhuIDFlNQojZGVmaW5lIG9vIDFlMTgKI2RlZmluZSBzYyh4KSBzY2FuZigiJWQiLCZ4KQojZGVmaW5lIGxiKHYsdCkgbG93ZXJfYm91bmQodi5iZWdpbigpLHYuZW5kKCksdCkKI2RlZmluZSB1Yih2LHQpIHVwcGVyX2JvdW5kKHYuYmVnaW4oKSx2LmVuZCgpLHQpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYnModix0KSBiaW5hcnlfc2VhcmNoKHYuYmVnaW4oKSx2LmVuZCgpLHQpCiNkZWZpbmUgRklMRUlOIGZyZW9wZW4oImlucC50eHQiLCJyIixzdGRpbikKI2RlZmluZSBGSUxFT1VUIGZyZW9wZW4oIm91dC50eHQiLCJ3IixzdGRvdXQpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CkxMIFAsIFE7CmludCBzLCB0OwpzdHJpbmcgY2h1eWVuKExMIHgpewoJc3RyaW5nIHMxID0gIiI7CglpZiAoeCA9PSAwKSByZXR1cm4gIjAiOwoJd2hpbGUoeCA+IDApewoJCXMxID0gczEgKyBjaGFyKHglMTAgKyAnMCcpOwoJCXgvPTEwOwoJfQoJcmV2ZXJzZShzMS5iZWdpbigpLHMxLmVuZCgpKTsKCXJldHVybiBzMTsKfQp2b2lkIHN1YjEyKCl7IC8vIE8obikKCXN0cmluZyBzMSA9ICIiOwoJTEwgcmVzID0gMDsKCVAgJT0gUTsKCXdoaWxlKHMxLmxlbmd0aCgpIDw9IHQpewoJCWlmKFAgPT0gMCkgYnJlYWs7CgkJUCAqPSAxMDsKCQlyZXMgPSBQL1E7CgkJczEgKz0gY2h1eWVuKHJlcyk7CgkJUCA9IFAgJSBROwoJfQoJcmVzID0gMDsKCS8vY291dCA8PCBzMSA8PCBlbmRsOwoJczEgPSAiMCIgKyBzMTsKCWludCBsID0gczEubGVuZ3RoKCkgLSAxOwoJdCA9IG1pbih0LCBsKTsKCWZvcihpbnQgaSA9IHM7IGkgPD0gdDsgaSsrKQoJIHJlcyA9IChyZXMgKyAoczFbaV0gLSAnMCcpICUgUSkgJSBROwoJY291dCA8PCByZXMgPDwgZW5kbDsKfQp2b2lkIHN1YjMoKXsKCXZlY3RvciA8aW50PiBkdSx0aHVvbmc7CglQICU9IFE7CglkdS5wYihQKTsKCWludCBkZW0gPSAwLCB2dCA9IDA7Cgl3aGlsZShQICE9IDAgJiYgZGVtIDwgMTAwMDApewoJCWludCB4ID0gUS9QOwoJCWlmKGxiKGR1LChQICogKHggKyAxKSkgJSBRKSAhPSBkdS5lbmQoKSl7CgkJCXZlY3RvciA8aW50PiA6OiBpdGVyYXRvciBpdDsKCQkJaXQgPSBsYihkdSwoUCAqICh4ICsgMSkpICUgUSk7CgkJCWlmKCppdCA9PSAoUCAqICh4ICsgMSkpICUgUSl7CgkJCSAJdnQgPSBpdCAtIGR1LmJlZ2luKCk7CgkJCSAJYnJlYWs7CgkJCX0KCQl9CgkJZHUucGIoKFAgKiAoeCArIDEpKSAlIFEpOwoJCXRodW9uZy5wYihQICogKHggKyAxKS9RKTsKCQlkZW0gKys7Cgl9Cglmb3IoaW50IGkgPSB2dDsgaSA8IHRodW9uZy5zaXplKCkgOyBpKyspCgkgY291dCA8PCB0aHVvbmdbaV07Cn0KaW50IG1haW4oKXsKCWZyZW9wZW4oImZyYWMuaW5wIiwiciIsc3RkaW4pOwoJZnJlb3BlbigiZnJhYy5vdXQiLCJ3IixzdGRvdXQpOwoJaW50IHRlc3Q7CgljaW4gPj4gdGVzdDsKCXdoaWxlKHRlc3QtLSl7CgkJY2luID4+IFAgPj4gUSA+PiBzID4+IHQ7CgkJc3ViMTIoKTsKCX0KCXJldHVybiAwOwp9Cgo=