Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- temp_list = []
- end_list = []
- steps = 0.to_i
- meta_steps = 0.to_i
- meta_cc = 1.to_i
- puts "Enter Collatz conjecture paths to display from 1 to X."
- meta_cc_limit = gets.chomp.to_i
- while meta_cc < meta_cc_limit + 1
- cc = meta_cc
- end_list.push(cc)
- temp_list.push(cc)
- puts "Start with #{cc}."
- while cc > 1
- if cc.even? == TRUE
- puts "#{cc} is even, so divide by 2. This brings it to #{cc/2}."
- cc = cc/2
- end_list.push(cc)
- temp_list.push(cc)
- steps = steps + 1
- meta_steps = meta_steps + 1
- else
- puts "#{cc} is odd, so multiply by 3 then add 1. This bring its to #{cc*3+1}."
- cc=cc*3+1
- end_list.push(cc)
- temp_list.push(cc)
- steps = steps + 1
- meta_steps = meta_steps + 1
- end
- end
- puts "1 has been reached. It took #{steps} steps."
- puts "Hailstone numbers in path for #{meta_cc}:"
- puts temp_list.join(", ")
- temp_list.clear
- if meta_cc == meta_cc_limit-1
- puts "PATH FROM #{meta_cc} COMPLETE. ON TO FINAL NUMBER, WHICH IS #{meta_cc+1}."
- elsif meta_cc < meta_cc_limit
- puts "PATH FROM #{meta_cc} COMPLETE. ON TO NEXT NUMBER, WHICH IS #{meta_cc+1}."
- end
- steps = steps - steps
- meta_cc = meta_cc + 1
- end
- puts "All paths completed. Total steps across all paths: #{meta_steps}"
- puts "Here's each unique number encountered:"
- puts end_list.uniq.join(", ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement