Pagini recente » Cod sursa (job #1781551) | Cod sursa (job #413324) | Cod sursa (job #2856692) | Cod sursa (job #644617) | Cod sursa (job #1803886)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <limits.h>
#include <math.h>
int IsInArray(int x)
{
unsigned long long i = ceil(sqrt(double(x)));
unsigned long long v2 = i*i;
unsigned long long v1 = v2-i;
unsigned long long v3 = v2+i;
if(v1 < x && x <= v2)
{
return 1;
}
return 0;
}
int RespectsCondition(unsigned long long v, int n, int r)
{
while(n>0)
{
if(IsInArray(v) == 0)
{
return 0;
}
v +=r;
n--;
}
return 1;
}
int main()
{
clock_t begin = clock();
FILE* fin = fopen("progresie.in","r");
FILE* fout = fopen("progresie.out","w");
int T;
fscanf(fin, "%d", &T);
for(int t=0; t<T; t++)
{
int n, r;
fscanf(fin, "%d %d", &n, &r);
bool done = false;
for(unsigned long long i = 1; i<ULLONG_MAX; i++)
{
for(unsigned long long j = i*i-i+1; j<=i*i; j++)
if(RespectsCondition(j, n, r))
{
fprintf(fout, "%llu\n", j);
done = true;
break;
}
if(done)
{
break;
}
}
}
//fprintf(fout, "%llu\n", clock() - begin);
return 0;
}