I can't seem to figure out why this is an infinite loop in python??
for i in range(n):
j=1
while((i*j)<n):
j+=1
shouldn't the outer loop go n times. incrementing j until its equal to n div i each time?
i starts at 0, so the while condition stays always true; see the range docs for details.
You can create a "trace" showing the state changes of the variables.
etc.
You can prove that your trace is correct by inserting print statements.
When in doubt, print it out.