Eratosthenovo sito (ukecane)

def erast_sieve(stop)
  # init array
  field2 = [];
  for i in 1..stop-1
    field2[i-1]=i+1;
  end
 
  primes = [];
  stop = 0;
  to_test = 1;
 
  while stop!=1
    to_test = field2[0];
    primes.push(field2[0])
 
    field2.each { |x|
      if(x%to_test==0)
        field2.delete(x)
      end
    }
 
    if(to_test*to_test >= field2.last)
      primes = primes.concat(field2)
      stop = 1;
    end
 
  end
  puts primes.inspect
  puts "Number of primes: "+primes.count.to_s
end
 
erast_sieve(30)
 
/disk_1/www/cz/ladariha/wiki/data/pages/programovani/ruby/erast_sito.txt · Poslední úprava: 2011/09/19 21:09 autor: ladariha
 
Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki