On Tue, 20 Sep 2005, Gergely Kontra wrote: > Hi! > > Is there a similar construct to python's: > >>>> for n in range(2, 10): > ... for x in range(2, n): > ... if n % x == 0: > ... print n, 'equals', x, '*', n/x > ... break > ... else: > ... # loop fell through without finding a factor > ... print n, 'is a prime number' > ... > 2 is a prime number > 3 is a prime number > 4 equals 2 * 2 > 5 is a prime number > 6 equals 2 * 3 > 7 is a prime number > 8 equals 2 * 4 > 9 equals 3 * 3 i would probably use catch/throw: harp:~ > cat a.rb (2 ... 10).each do |n| x = catch('x'){(2 ... n).each{|x| throw 'x', x if n % x == 0}; nil} if x puts "#{ n } = #{ n } * #{ x }/#{ n }" else puts "#{ n } is prime" end end harp:~ > ruby a.rb 2 is prime 3 is prime 4 = 4 * 2/4 5 is prime 6 = 6 * 2/6 7 is prime 8 = 8 * 2/8 9 = 9 * 3/9 cheers. -a -- =============================================================================== | email :: ara [dot] t [dot] howard [at] noaa [dot] gov | phone :: 303.497.6469 | Your life dwells amoung the causes of death | Like a lamp standing in a strong breeze. --Nagarjuna ===============================================================================