Pagini recente » Cod sursa (job #2424149) | Cod sursa (job #2343357) | Cod sursa (job #84010) | Cod sursa (job #947761) | Cod sursa (job #1070234)
/*#include <fstream>
using namespace std;
ifstream fin("progresie.in");
ofstream fout("progresie.out");
struct coord {
int in, sf;
};
coord v[10001];
int n, r, i, elem, j, k, l, p, t, q = 1, rez;
int main() {
fin >> n;
v[1].in = v[1].sf = 1;
for(i = 1;i <= n;i++) {
fin >> elem >> r;
j = 1;k = 0;p = 0;
while(k != 1) {
l = j;
p = 0;
while(p < elem && k == 0) {
for(t = 1;t <= q;t++) {
if(l >= v[t].in && l <= v[t].sf) break;
else if(l < v[t].in) {k = 1;break;}
}
if(t == q + 1) {
while(k == 0) {
v[1 + q].in = v[q].sf + q + 1;
q++;
v[q].sf = v[q].in + q - 1;
if(l >= v[q].in && l <= v[q].sf) k = 2;
else if(l < v[q].in) k = 1;
}
if(k == 2) k = 0;
}
p++;
l += r;
}
k = (k + 1) % 2;
if(k == 1) rez = j;
j++;
}
fout << rez << '\n';
}
fin.close();
fout.close();
return 0;
}
*/
#include<cstdio>
#include<cmath>
bool ok(long long x){
long long sq = sqrt(x);
return x == sq*sq || x > sq*(sq+1);
}
int main(void){
freopen("progresie.in", "r", stdin);
#ifdef INFOARENA
freopen("progresie.out", "w", stdout);
#endif
int t;
scanf("%d", &t);
while(t--){
int n, r;
bool k = 0;
long long x;
scanf("%d%d", &n, &r);
n--;
for(long long i=1;!k;i++){
x = i*(i-1) + 1;
k = 1;
for(int j = 0;j<n;j++){
x += r;
if(!ok(x)){
k = 0;
break;
}
}
}
printf("%lld\n", x - 1LL * r*n);
}
return 0;
}