Even numbers could be ugly!!!! I suddenly find number systems and C to be greatly interesting :) :)  Recently going through the net I found a question...  Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence  1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...  shows the first 11 ugly numbers.  By convention, 1 is included.   We need to find 1500'th ugly number.  ---------------------------------------------Best solution according to me--------------------------------------------------   if x is ugly, then so are 2x, 3x and 5x.   So we can use a min-heap.  Start with 1 in the heap.   Now if we do the following in a loop:  x = Heap.PopCurrentMin();  Heap.Insert(2x);  Heap.Insert(3x);  Heap.Insert(5x)   I believe this will work. Not sure what the time complexity will be, but my guess is that this is reasonably efficient. :) If any one finds a better solution....Please do post!!!!