Hi
is there any way to speed up my program ,it needs to find
The first smallest number who's factorial is bigger or equal to the inputed number
first we input the number of test cases
should i use some other data structure than dynamic array
Code:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void brojCif(int *a,int n)//it find's number of digits of a factorial of all numbers from 1 to n
{
int i;
float dig=0.0;
for (i = 1; i <=n; i++)
{
dig +=log10(i);
a[i]=(int)floor(dig)+1;
}
}
int main()
{
int i=0,br,t=0,br_cif;
int *a= (int*)malloc(sizeof(int)*1000000);
scanf("%d",&t);
brojCif(a,1000000);
while(t--){
scanf("%d", &br);
i=1;
while(1){
if(a[i]>=br) {printf("%d\n",i);break;}
i++ ;
}
}
return 0;
}