local fn Chowla( n as NSUInteger ) as NSUInteger NSUInteger i, j, r = 0 i = 2 while ( i * i <= n ) j = n / i if ( n mod i == 0 ) r += i if ( i != j ) r += j end if end if i++ wend end fn = r local fn DoIt NSUInteger n, count = 0, power = 100, limit, k, kk, p = 0 for n = 1 to 37 printf @"chowla(%u) = %u", n, fn Chowla( n ) next for n = 2 to 10000000 if ( fn Chowla(n) == 0 ) then count ++ if ( n mod power == 0 ) then printf @"There are %u primes < %-7u", count, power : power *= 10 next count = 0 limit = 350000000 k = 2 : kk = 3 do p = k * kk if ( fn Chowla( p ) == p - 1 ) printf @"%9u is a perfect number", p count++ end if k = kk + 1 kk = kk + k until ( p > limit ) printf @"There are %u perfect numbers < %u", count, limit end fn fn DoIt HandleEvents