Guest User

Untitled

a guest
Nov 12th, 2012
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. class Prime_number
  2. def get_value
  3. loop do
  4. print "enter number :"
  5. i = gets.chomp.to_i
  6. break if i == "exit"
  7. if i =~ /\d/ then
  8. prime = true
  9. for counter in 2..(Math.sqrt(i)) do
  10. if i % counter == 0 then
  11. prime = false
  12. end
  13. end
  14. if prime then
  15. puts "\n Given number is Prime, here are the preceding prime numbers."
  16. number = 7
  17. low_max = Math.sqrt(i)
  18. base_primes = {}
  19. current_pos = 0
  20. prime = true
  21.  
  22. if i >= 2 # I need a few starter values
  23. puts "2"
  24. base_primes[current_pos] = 2
  25. current_pos = current_pos + 1
  26. end # if
  27. if i >= 3
  28. puts "3"
  29. base_primes[current_pos] = 3
  30. current_pos = current_pos + 1
  31. end # if
  32. if i >= 5
  33. puts "5"
  34. base_primes[current_pos] = 5
  35. current_pos = current_pos + 1
  36. end # if
  37. while number <= low_max # while number <= sqrt of max_number
  38. # this will add all prime numbers up
  39. # to low_max to the base_primes array
  40. for x in 0..base_primes.length - 1
  41. if number % base_primes[x] == 0
  42. prime = false
  43. end # if
  44. end # for
  45. if prime == true
  46. base_primes[current_pos] = number
  47. current_pos = current_pos + 1
  48. puts number
  49. end # if
  50. prime = true
  51. number = number + 2
  52. end # while
  53.  
  54. prime = true
  55. l_length = base_primes.length - 1
  56. current_position = 0
  57. while number <= i # Starting at the first number after low_max
  58. # simply print all primes
  59. while prime == true and current_position <= l_length
  60. if number % base_primes[current_position] != 0
  61. prime = true
  62. else
  63. prime = false
  64. end # if
  65. current_position = current_position + 1
  66. end # while
  67. if prime == true
  68. puts number
  69. end # if
  70. current_position = 0
  71. prime = true
  72. number = number + 2
  73. end # while
  74. else
  75. puts "\n Given number is composite"
  76. end
  77. end
  78. end
  79. end
  80. end
  81. a = Prime_number.new
  82. a.get_value
  83.  
  84.  
  85. puts "thanks for using the prime number game"
Advertisement
Add Comment
Please, Sign In to add comment