Contribution on Puzzlet #148

From:  Colin Elphick [

What about 1!  ?

color 15,0
autodefine "off"
uint i
i = 1
double x
x =0.0
 x = x + log10(i)
 if (i = int(x)+1)
  print rtrim$(str$(i))+"!"
 i = i + 1
until i<int(x)+1
locate 25,35 : print "Finished.",
do : until inkey$<>""

You're right, Colin - 1 is a legitimate answer.  I ignored this at my peril, regarding it as trivial!

More interestingly, your solution is much more elegant than mine.  I'm kicking myself, because I've used logs in a recent Puzzlet to determine a number's length, but never thought of doing it here. 

That meant I had to actually generate each factor and then figure out its length, and generating those VLI's (very long integers) is hard work in Basic.

All's well that ends well, though; Colin saw my function for generating VLI's and is going to use it for something else he's working on.

Congratulations on a really good contribution.



Site design/maintenance: Dave Ellis E-mail me!
Last Updated: July 10th, 2005.