Task

Show that the following remarkable formula gives the sequence of non-square natural numbers:

            n + floor(1/2 + sqrt(n)) 

 Print out the values for    n    in the range   1   to   22
 Show that no squares occur for    n    less than one million


This is sequence   A000037   in the OEIS database.




/nonsquare { dup sqrt .5 add floor add } def
/issquare { dup sqrt floor dup mul eq } def
 
1 1 22 { nonsquare = } for
 
1 1 1000 { 
        dup nonsquare issquare { 
                (produced a square!) = = exit
        } if pop
} for 
 