For this Question: Given an array arr[] of size N and a number K, the task is to find the smallest number M such that the sum of the array becomes lesser than or equal to the number K when every element of that array is divided by the number M.

Note: Each result of the division is rounded to the nearest integer greater than or equal to that element. For example: 10/3 = 4 and 6/2 = 3The first line contains two integers N and K.
Next line contains N integers denoting the elements of arr[]

<b>Constraints:</b>
1 <= N <= 100000
1 <= arr[i] <= 100000
1 <= K <= 100000000Print a single integer the value of smallest number MSample Input:
4 6
2 3 4 9

Sample Output:
4

Explanation:
When every element is divided by 4 - 2/4 + 3/4 + 4/4 + 9/4 = 1 + 1 + 1 + 3 = 6
When every element is divided by 3 - 2/3 + 3/3 + 4/3 + 9/3 = 1 + 1 + 2 + 3 = 7 which is greater than K.
Hence the smallest integer which makes the sum less than or equal to K = 6 is 4., I have written this Solution Code: from math import ceil
def kSum(arr, n, k):
    low = 0
    high = 10 ** 9
    
    while (low < high):
        mid = (low + high) // 2
        sum = 0
 
        for i in range(int(n)):
            sum += ceil( int(arr[i]) / mid)
 
        if (sum <= int(k)):
            high = mid
        else:
            low = mid + 1
    return low

n, k =input().split()
arr = input().split()

print( kSum(arr, n, k) ), In this Programming Language: Python, Now tell me if this Code is compilable or not?