Pagini recente » Cod sursa (job #1372097) | Cod sursa (job #2332526) | Cod sursa (job #303532) | Cod sursa (job #1162181) | Cod sursa (job #2219995)
#include <fstream>
#include <math.h>
#define LL long long
using namespace std;
fstream f1("progresie.in", ios::in);
fstream f2("progresie.out", ios::out);
int t;
long long n, r;
bool apsir(long long x)
{
long long rad=sqrt(x);
if(rad*rad!=x) rad++;
return (rad*(rad-1LL)+1LL<=x);
}
long long v(long long n, long long r)
{
int ok;
long long k, j, i;
///k max 10^4, n max 30
for(k=1LL; k*(k-1LL)+1LL<=(n-1LL)*r;k++) ///incepi din primele val blocuri
{
i=k*(k-1LL)+1LL;
ok=1;
for(j=1LL; (j<n)&&ok; j++)
if(!apsir(i+j*r)) ok=0;
if(ok) return i;
}
return (1LL+(n-1LL)*r)*((n-1LL)*r)+1LL;///sigur sol
}
int main()
{
f1>>t;
while(t--)
{
f1>>n>>r;
f2<<v(n, r)<<"\n";
}
return 0;
}