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.




go =>
 
  println([f(I) : I in 1..22]),
  nl,
  check(1_000_000), 
  nl.
 
% The formula
f(N) = N + floor(1/2 + sqrt(N)).
 
check(Limit) =>
  Squares = new_map([I*I=1:I in 1..sqrt(Limit)]),
  Check = [[I,T] : I in 1..Limit-1, T=f(I), Squares.has_key(T)],
  println(check=Check.len).