Cod sursa(job #1069912)

Utilizator apopeid14Apopei Daniel apopeid14 Data 30 decembrie 2013 17:38:12
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.76 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;
}