Help for this page

Select Code to Download


  1. or download this
    sub c{($k,@_)=($#_)?@_:2..($n=@_[0]);@_=map{($_%$k)?$_:0}@_;push
    @_,$k;$k<=sqrt($n)?c(grep{!/^0/}@_):@_}
    
  2. or download this
    [arguile@cobalt ~]$ wc -L sieve_golf
        104 sieve_golf
    
  3. or download this
    # display procedure blatantly stolen from Tye
    
    ...
    100: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 
    +89 97
    169: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 
    +89 97 101
    103 107 109 113 127 131 137 139 149 151 157 163 167
    
  4. or download this
    # non-strict
    sub c{$n=pop;@_=2..$n;for($k=2;$k<=sqrt($n);($k)=@_){@_=grep!/^0/,(map
    +{($_%$k)?$_:0}@_),$k}@_}
    
    # strict w/ less named vars
    sub c{pop;@_=2..$_;for(my$k=2;$k<=sqrt;($k)=@_){@_=grep!/^0/,(map{$_%$
    +k?$_:0}@_),$k}@_}
    
  5. or download this
    sub e{pop;@_=2..$_;for(my$k=2;$k<=sqrt;($k)=@_){@_=((grep$_%$k,@_),$k)
    +;}@_}