euler/generate_primes.rb

38 lines
409 B
Ruby
Raw Normal View History

2011-05-31 15:31:13 +00:00
limit=ARGV[0].to_i;
crosslimit=Math.sqrt(limit);
sieve=[0]*limit;
i=0;
while i<limit
sieve[i]=false
i+=1
end
i=4
while i<limit
sieve[i]=1;
i+=2
end
i=3
while i<crosslimit
if !sieve[i]
m=i*i
while m<limit
sieve[m]=true;
m+=2*i
end
end
i+=2
end
sum=0;
i=2;
while i<limit
if not sieve[i]
puts i
end
i+=1
end