UVA - 136 Ugly Numbers(set判重)
把只包含因子2、3和5的数称作ugly numbers
例如6、8都是丑数,但20不是,因为它包含因子4。
本题要求输出第1500个丑数,用set直接判重输出
#include <iostream> #include <cstdio> #include <set> using namespace std; int ref[3]={2,3,5}; set<long long>a; int main() { int m=1; a.insert(1); set<long long>::iterator it=a.begin(); while(m<=1600) { for(it=a.begin();it!=a.end()&&m<=1600;it++) { for(int j=0;j<3;j++) { long long temp=(*it)*ref[j]; if(a.find(temp)==a.end()) { a.insert(temp); m++; } } } } m=1; for(it=a.begin();it!=a.end()&&m++<1500;it++); printf("The 1500'th ugly number is %lld.\n",*it); return 0; }