Hello!

Here’s my code.

## class Integer

def prime?

return false if self < 2

return @is_prime if @prime_cached

@prime_cached = true

(2…(self ** 0.5)).each do |i|

return (@is_prime = false) if i.prime? and self % i == 0

end

@is_prime = true

end

end

I want each integer to remember if it’s a prime number or not.

As the calculation uses cache of smaller prime numbers, it runs fast.

But I’m not sure if the cache is preserved after GC runs (when nothing

refers to the integers).

If the cache is not preserved, it’s no use.

My first idea was keeping the cache in a class variables like

@@prime_numbers and @@max_cached.

But I think it would be better if each object remembers its own state.

What do you think?

Sam