// 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. // A program to find the nth Ugly number // Algorithm : // Initialize three-pointers two, three, and five pointing to zero. // Take 3 variables nm2, nm3, and nm5 to keep track of next multiple of 2,3 and 5. // Make an array of size n to store the ugly numbers with 1 at 0th index. // Initialize a variable next which stores the value of the last element in the array. // Run a loop n-1 times and perform steps 6,7 and 8. // Update the values of nm2, nm3, nm5 as ugly[two]*2, ugly[three]*3, ugly[5]*5 respectively. // Select the minimum value from nm2, nm3, and nm5 and increment the pointer related to it. // Store the minimum value in variable next and array. // Return next. package Maths; import java.util.*; class NthUglyNumber { /* Function to get the nth ugly number*/ public long getNthUglyNo(int n) { long[] ugly = new long[n]; int two=0, three=0, five=0; long nm2=2, nm3=3, nm5=5; long next = 1; ugly[0] = 1; for(int i=1; i