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.




f: function [n]->
    n + floor 0.5 + sqrt n
 
loop 1..22 'i ->
    print [i "->" f i]
 
i: new 1, nonSquares: new []
while [i<1000000][ 'nonSquares ++ f i, inc 'i]
squares: map 1..1001 'x -> x ^ 2
 
if? empty? intersection squares nonSquares -> print "Didn't find any squares!"
                                      else -> print "Ooops! Something went wrong!"