File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed
Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Ugly numbers are numbers whose only prime factors are 2, 3 or 5.
3+ */
4+
5+ import java .util .*;
6+ import java .io .*;
7+
8+ class UglyNumbers {
9+
10+ public static int getNthUglyNumber (int n ) {
11+ int array [] = new int [n + 1 ];
12+
13+ array [0 ] = 1 ;
14+
15+ int i2 = 0 ;
16+ int i3 = 0 ;
17+ int i5 = 0 ;
18+
19+ int nextMultipleOf2 = 2 ;
20+ int nextMultipleOf3 = 3 ;
21+ int nextMultipleOf5 = 5 ;
22+
23+
24+ for (int i = 1 ; i < n ; i ++) {
25+
26+ int min = Math .min (nextMultipleOf2 , Math .min (nextMultipleOf3 , nextMultipleOf5 ));
27+
28+ array [i ] = min ;
29+ if (min == nextMultipleOf2 ) {
30+ i2 ++;
31+ nextMultipleOf2 = array [i2 ]*2 ;
32+ }
33+ if (min == nextMultipleOf3 ) {
34+ i3 ++;
35+ nextMultipleOf3 = array [i3 ]*3 ;
36+ }
37+ if (min == nextMultipleOf5 ) {
38+ i5 ++;
39+ nextMultipleOf5 = array [i5 ]*5 ;
40+ }
41+ }
42+ return array [n -1 ];
43+ }
44+
45+ public static void main (String [] args ) {
46+ int n = 150 ;
47+ System .out .println (getNthUglyNumber (n ));
48+ }
49+ }
You can’t perform that action at this time.
0 commit comments