f[ n_Integer ] := (ds = Divisors[ n ]; sq = N[ Sqrt[ n ] ]; l = 1; While[ ds[[ l ] ] <= sq, l++ ]; l = l - 1; ds = Take[ ds, l ]; s = 1; k = 2; While[ k <= l, If[ GCD[ ds[[ k ] ], n/ds[[ k ] ] ] == 1 || GCD[ ds[[ k ] ], n/ds[[ k ] ] ] == ds[[ k ] ], s = s + ds[[ k ] ] + n/ds[[ k ] ] ]; k++ ]; If[ ds[[ -1 ] ] == n/ds[[ -1 ] ], s = s - d ]; s) Do[ If[ ! PrimeQ[ n ] && f[ n ] == n, Print[ n ] ], {n, 2, 33429000} ] (*
Robert G. Wilson v, Nov 09 2000 *)