Pagini recente » Cod sursa (job #1207192) | Cod sursa (job #1169853) | Cod sursa (job #2105031) | Cod sursa (job #1623459) | Cod sursa (job #15820)
Cod sursa(job #15820)
#include<stdio.h>
#include<math.h>
long putere[1000],l;
long chiftele(long N)
{long k,nrg,x,ll;
ll=1;
while(putere[ll]<=N)
ll++;
ll--;
x=floor(sqrt(putere[ll]));
k=4*x;
if ((N-x*x)%x==0) nrg=(N-x*x)/x;
else nrg=(N-x*x)/x+1;
if(N==putere[ll]) return k;
else return k+nrg*2;
}
int main()
{
FILE *f=fopen("chiftea.in","r");
FILE *g=fopen("chiftea.out","w");
long T, N,i,y;
putere[0]=1;
putere[1]=1;l=1;
while ((putere[l]>0)&&(putere[l]<=2000000000/4))putere[++l]=putere[l-1]*4;
putere[++l]=2010000001;
fscanf(f,"%ld\n",&T);
for(i=1;i<=T;i++)
{
fscanf(f,"%ld\n",&N);y=chiftele(N);
fprintf(g,"%ld\n",y);
}
fclose(f);
fclose(g);
return 0;
}