#include <cstdio>
//#include <windows.h>
using namespace std;
int main(){
long array[1500] ;
array[0] = 1 ;
int pointer_2 = 0;
int pointer_3 = 0;
int pointer_5 = 0;
for(int i = 1 ; i <=1500 ; i++){
// cout << "====== i:" << i << " ============================================================" <<endl ;
int test1 = 2 * array[pointer_2] ;
int test2 = 3 * array[pointer_3] ;
int test3 = 5 * array[pointer_5] ;
int chosen = min(test1, min(test2,test3)) ;
/*
cout << "test 1 = 2 * " << array[pointer_2] << " = "<< 2 * array[pointer_2] <<endl ;
cout << "test 2 = 3 * " << array[pointer_3] << " = "<<3 * array[pointer_3] <<endl ;
cout << "test 3 = 5 * " << array[pointer_5] << " = "<< 5 * array[pointer_5] <<endl ;
*/
if(chosen == test1){array[i] = test1 ; pointer_2++ ;
// cout << "pointer 2 updated , :" << pointer_2 <<endl ;
}
if(chosen == test2){array[i] = test2 ; pointer_3++ ;
// cout << "pointer 3 updated , :" << pointer_3 <<endl ;
}
if(chosen == test3){array[i] = test3 ; pointer_5++ ;
// cout << "pointer 5 updated , :" << pointer_5 <<endl ;
}
// cout << "NUMBER ADDED " << chosen << endl ;
// Sleep(10) ;
}
cout << "The 1500'th ugly number is " << array[1499] << "." <<endl ;
// Sleep(8000000) ;
return 0 ;
}