floating point rounding (1/x)*x
That's probably not what was meant by "round".  I suspect "round" probably meant to round to the nearest single-precision float.  In particular, you can easily verify that 41 is the smallest number with this property:

&gt;&gt;&gt; from numpy import * 
&gt;&gt;&gt; float32(float32(1.0/3.0)*3.0)
1.0
&gt;&gt;&gt; float32(float32(1.0/40.0)*40.0)
1.0
&gt;&gt;&gt; float32(float32(1.0/41.0)*41.0)
0.99999994


But you should double-check the definition of the function round() with whoever told you this problem.  We can't read their mind.