rem - return true (-1) if n is perfect, otherwise 0 def fn.isperfect%(n%) sum% = 1 : rem 1 is a divisor of every number f1% = 2 f2% = 1 : rem dummy value to start while (f1% * f1%) <= n% if n% = (n% / f1%) * f1% then \ sum% = sum% + f1% : \ f2% = n% / f1% : \ sum% = sum% + f2% rem don't double count sqrt of perfect square! if f1% = f2% then sum% = sum% - f2% f1% = f1% + 1 wend fn.isperfect% = (sum% = n%) return fend print "Searching to 10000 for perfect numbers" count% = 0 for i% = 2 to 10000 if fn.isperfect%(i%) then \ print i% : count% = count% + 1 next i% print count%; "were found" end