[SOLVED] Ruby- prime number unique and duplicates

Issue

I’m just learning Ruby 🙂 and Im trying to create a simple prime-number program where all the primes of a number are printed.

I’m getting errors where the prime and nonprime numbers are mixed up
(ie: input of 9 will get you all nonprimes).

I’m sorry for such a beginner question – I’m struggling alot and need some help 🙂

puts "Enter a number please "
num = gets.chomp.to_i

i = 2
number = 2

while i < num
  if number % i == 0
    prime = false
  end
    i += 1
  end
  if prime == true
    puts "#{number} is prime"
  else
    puts "#{number} is not prime"
  end
  number += 1
end

Solution

while i < num
  if number % i == 0
    prime = false
  end
    i += 1
  end
  # ...

It looks like that first end is meant to be an else.

It’s easier to catch these things when you simplify your code, e.g. this method reduces to this (although there are other issues with it):

i = 2
number = 2

while i < num
  (number % i).zero? ? prime = false : i += 1
  puts "#{number} is #{'not ' unless prime}prime"
  number += 1
end

Answered By – Mori

Answer Checked By – Dawn Plyler (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *