Cod sursa(job #1066913)

Utilizator Marius96Marius Gavrilescu Marius96 Data 25 decembrie 2013 19:57:40
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 - r*n);
	}

	return 0;
}