At its heart, this task is almost exactly the same as Proper_Divisors, it is just asking for slightly different results. Much of this code is lifted straight from there.
Implemented as an auto-extending lazy list. Displaying the count of anti-primes less than 5e5 also because... why not.
subpropdiv (\x) {my @l = 1 if x > 1; (2 .. x.sqrt.floor).map: -> \d {unless x % d { @l.push: d; my \y = x div d; @l.push: yify != d } } @l}my $last = 0;my @anti-primes = lazy 1, |(|(2..59), 60, *+60 … *).grep: -> $c {my \mx = +propdiv($c);nextif mx <= $last; $last = mx; $c}my $upto = 5e5;put "First 20 anti-primes:\n{ @anti-primes[^20] }";put "\nCount of anti-primes <= $upto: {+@anti-primes[^(@anti-primes.first: * > $upto, :k)]}";