pernicious_numbers.sf 422 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/ruby
  2. #
  3. ## https://rosettacode.org/wiki/Pernicious_numbers#Sidef
  4. #
  5. func is_pernicious(n) {
  6. var c = 2693408940; # primes < 32 as set bits
  7. while (n > 0) { c >>= 1; n &= (n - 1) }
  8. c & 1;
  9. }
  10. var (i, *p) = 0;
  11. while (p.len < 25) {
  12. p << i if is_pernicious(i);
  13. ++i;
  14. }
  15. say p.join(' ');
  16. var (i, *p) = 888888877;
  17. while (i < 888888888) {
  18. p << i if is_pernicious(i);
  19. ++i;
  20. }
  21. say p.join(' ');