Keen eyes

jonas.thornvall at gmail.com jonas.thornvall at gmail.com
Sat Jan 16 18:25:41 EST 2016


Den lördag 16 januari 2016 kl. 23:30:48 UTC+1 skrev Chris Angelico:
> On Sun, Jan 17, 2016 at 9:23 AM,  <jonas.thornvall at gmail.com> wrote:
> > function factor_it(i){
> > prime=true;
> > sqroot=Math.floor(Math.sqrt(i));
> > for (j=2;j<sqroot;j++){ k=i/j; prime=!Number.isInteger(k); if (prime) {return prime}}
> > return prime;
> > }
> 
> A couple of potential problems here. The first thing that comes to
> mind is that floating point inaccuracy is going to bite you long
> before the numbers "seem huge" to someone who's thinking about 2**53.
> The second is an off-by-one error: a perfect square may come up as
> prime.
> 
> Check for those and see how it looks.
> 
> Also, check your double-use of the 'prime' variable, which also
> appears to be global here.
> 
> ChrisA

Thank you Chris your comment resolved it double use of j in two different functions and loops.



More information about the Python-list mailing list