#include<bits/stdc++.h>
using namespace std ;
int main(){
int t ;
cin>>t;
while(t--){
int n;
cin>>n;
// pair.first --> value ; pair.second --> idx
vector<pair<long long,int>> v(n),copy(n);
for(int i = 0 ; i < n ; i++){
cin>>v[i].first;
v[i].second = i+1 ;
}
sort(v.begin(),v.end());
copy = v ;
//copy -- > og vector
// v --> changed vector
for(int i = 1 ; i< n ; i++){
v[i].first += (v[i-1].first - (v[i].first % v[i-1].first));
}
cout<<n<<"\n";
for(int i = 0 ; i< n ; i++){
cout<<v[i].second<<' '<<v[i].first-copy[i].first<<"\n";
}
// 3 6 348 6 12
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CmludCBtYWluKCl7CiAgICBpbnQgdCA7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIGludCBuOwogICAgICAgIGNpbj4+bjsKICAgICAgICAvLyBwYWlyLmZpcnN0IC0tPiB2YWx1ZSA7IHBhaXIuc2Vjb25kIC0tPiBpZHggIAogICAgICAgIHZlY3RvcjxwYWlyPGxvbmcgbG9uZyxpbnQ+PiB2KG4pLGNvcHkobik7CiAgICAgICAgZm9yKGludCBpID0gMCA7IGkgPCBuIDsgaSsrKXsKICAgICAgICAgICAgY2luPj52W2ldLmZpcnN0OwogICAgICAgICAgICB2W2ldLnNlY29uZCA9IGkrMSA7CiAgICAgICAgfQogICAgICAgIHNvcnQodi5iZWdpbigpLHYuZW5kKCkpOwogICAgICAgIGNvcHkgPSB2IDsKICAgICAgICAvL2NvcHkgLS0gPiBvZyB2ZWN0b3IgCiAgICAgICAgLy8gdiAtLT4gY2hhbmdlZCB2ZWN0b3IgCiAgICAgICAgZm9yKGludCBpID0gMSA7IGk8IG4gOyBpKyspewogICAgICAgICAgICB2W2ldLmZpcnN0ICs9ICh2W2ktMV0uZmlyc3QgLSAodltpXS5maXJzdCAlIHZbaS0xXS5maXJzdCkpOwogICAgICAgIH0KICAgICAgICBjb3V0PDxuPDwiXG4iOwogICAgICAgIGZvcihpbnQgaSA9IDAgOyBpPCBuIDsgaSsrKXsKICAgICAgICAgICAgY291dDw8dltpXS5zZWNvbmQ8PCcgJzw8dltpXS5maXJzdC1jb3B5W2ldLmZpcnN0PDwiXG4iOwogICAgICAgIH0KICAgICAgICAvLyAzIDYgMzQ4IDYgMTIgCgogICAgfQp9