• + 0 comments

    Can someone please help me. I am getting time limit exceeded error for the below solution

    import java.io.; import java.math.; import java.security.; import java.text.; import java.util.; import java.util.concurrent.; import java.util.function.; import java.util.regex.; import java.util.stream.*; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList;

    class Result {

    /*
     * Complete the 'solve' function below.
     *
     * The function is expected to return a LONG_INTEGER.
     * The function accepts LONG_INTEGER n as parameter.
     */
    
    public static long calcTrailingZeroes(long m){
       if (m == 0) {
            return 0;
        }
    
        return m / 5 + calcTrailingZeroes(m / 5);
    }
    
    public static long solve(long n) {
     long result=-1;
     long lowerLimit=5;
     long upperLimit=5*(10^16);
     long mid=(lowerLimit+upperLimit)/2;
        while(lowerLimit<=upperLimit){
            if(calcTrailingZeroes(mid)<=n){
                result=mid;
                upperLimit=mid-1;
            }else{
                lowerLimit=mid+1;
            }
        }
        return result;
    
    }
    

    }

    public class Solution { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        int t = Integer.parseInt(bufferedReader.readLine().trim());
    
        IntStream.range(0, t).forEach(tItr -> {
            try {
                long n = Long.parseLong(bufferedReader.readLine().trim());
    
                long result = Result.solve(n);
    
                bufferedWriter.write(String.valueOf(result));
                bufferedWriter.newLine();
            } catch (IOException ex) {
                throw new RuntimeException(ex);
            }
        });
    
        bufferedReader.close();
        bufferedWriter.close();
    }
    

    }