38 lines
417 B
Ruby
38 lines
417 B
Ruby
limit=2000000;
|
|
|
|
crosslimit=Math.sqrt(2000000);
|
|
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]
|
|
sum += i
|
|
end
|
|
i+=1
|
|
end
|
|
puts sum
|