ugly-numbers

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.

Write a program to find and print the 1500’th ugly number.

Input and Output
There is noinput to this program. Output should consist of a single line asshown below, with <number> replaced by the number computed.

Sample output
The 1500’th ugly number is <number>.

法1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <set>

using namespace std;

int main() {
set<int> s{1};
for(set<int>::iterator i = s.begin();i!=s.end();i++)
{
s.insert((*i)*2);
s.insert((*i)*3);
s.insert((*i)*5);
if(s.size()>=1670)
break;
}
set<int>::iterator i = s.begin();
advance(i,1499);
cout<<"The 1500'th ugly number is "<<*i<<'.'<<endl;
return 0;
}