class Primes

reimann.rb

Attributes

num[R]
prime[RW]

Public Class Methods

new(num) click to toggle source
# File lib/reimann_foo.rb, line 18
def initialize(num)
        @primes_lst = []
        @num_lst = []
        self.num = num
        self.prime = false
end

Public Instance Methods

divide_for_primes() click to toggle source
# File lib/reimann_foo.rb, line 25
def divide_for_primes
        (2...num).each do |i|
                if num % i == 0
                        @primes_lst << i
                end
        end
        @primes_lst
end
is_prime() click to toggle source
# File lib/reimann_foo.rb, line 59
def is_prime
        @primes_lst.empty? ? self.prime = true : prime
        @primes_lst.empty? ? "prime." : "not prime.\nDividers are #{@primes_lst}."
end
num=(num) click to toggle source
# File lib/reimann_foo.rb, line 9
def num=(num)
        if num == 0
                raise "integers only"
        else
                puts num.to_i
        end
        @num = num
end
remove_evens() click to toggle source
# File lib/reimann_foo.rb, line 34
def remove_evens
        if num >= 2
                @primes_lst << 2
        end
        (2..num).each do |i|
                if i % 2 != 0 #if odd loop
                        @primes_lst << i
                end
        end
        @primes_lst
end
remove_odds() click to toggle source
# File lib/reimann_foo.rb, line 46
def remove_odds
        @num_lst = @primes_lst.reverse
        @num_lst.each do |i|
                @primes_lst.each do |j|
                        if i % j == 0 && i != j
                                @primes_lst.delete(i)
                        end
                end
        end
        puts "#{num} = #{@primes_lst.size} primes. --> #{@primes_lst}"
        @primes_lst
end
write() click to toggle source
# File lib/reimann_foo.rb, line 64
def write
        file_new = File.open('primes.txt', 'a+')
        file_new.write("#{num}")
        unless prime
                file_new.puts(" is not prime")
                file_new.puts("#{@primes_lst}")
        else
                file_new.write(" is prime\n")
        file_new.close
        end
end