Factstone Benchmark
Amtel has announced that it will release a 128-bit computer chip by 2010, a 256-bit computer by 2020, and so on, continuing its strategy of doubling the word-size every ten years. (Amtel released a 64-bit computer in 2000, a 32-bit computer in 1990, a 16-bit computer in 1980, an 8-bit computer in 1970, and a 4-bit computer, its first, in 1960.)
Amtel will use a new benchmark – the Factstone – to advertise the vastly improved capacity of its new chips. The Factstone rating is defined to be the largest integer \$n\$ such that \$n!\$ can be represented as an unsigned integer in a computer word.
Given a year \$1960\le y\le 2160\$, what will be the Factstone rating of Amtel's most recently released chip?
Input
There are several test cases. For each test case, there is one line of input containing \$y\$. A line containing \$0\$ follows the last test case. >
Output
For each test case, output a line giving the Factstone rating.
Sample Input 1
1960 1981 0
Sample Output 1
3 8
import math
n = int(input())
while n != 0:
n = (n - 1960) / 10 + 2
m = pow(2,n)
i = 1
while m > 0:
m -= math.log(i,2)
i += 1
print(i - 2)
n = int(input())
Can someone please help me time optimize this code? I'm doing it for a site that checks my code but I always fail at the time check.