Cod sursa(job #1066925)
Utilizator | Marius Gavrilescu Marius96 | Data | 25 decembrie 2013 20:23:21 |
---|---|---|---|
Problema | Progresie | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva ICPC | Marime | 0.54 kb |
#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;
}