1. Define f(a, b, c, m, i) = Floor[(a*i^2+b*i+c)/m]. 2. define a function T to find S = Sum[f(a, b, c, m, i), {i, 1, n}]. 3. define the values of a, b, c, and m randomly as positive integers less than or equal to 10. 4. for n=10^j with j=1, if the running time of T exceeds log(n) for function T with natural number n, derive an algorithm whose running time does not exceed log(n) for n=10^j, and define a new function U that optimizes function T using this algorithm. 5. compute and output S using U.

`def f(a, b, c, m, i): return math.floor((a*i**2+b*i+c)/m) def T(n): S = 1 for i in range(1, n): S += f(a, b, c, m, i) return S a = random.randint(1, 10) b = random.randint(1, 10) c = random.randint(1, 10) m = random.randint(1, 10) j = 1 while True: n = 10 ** j if T(n) > math.log(n): print("j = %d, n = %d, T(n) > log(n)" %(j, n)) break j += 1`