题意翻译
题意描述:丑数是一些因子只有2,3,5的数。数列1,2,3,4,5,6,8,9,10,12,15……写出了从小到大的前11个丑数,1属于丑数。现在请你编写程序,找出第1500个丑数是什么。
没有输入
输出:The 1500'th ugly number is <...>.(<...>为你找到的第1500个丑数) 注意:<...>是你找到的数,输出中没有尖括号; 2、输出完应换行。 翻译贡献者UID:26538
题目描述
输入输出格式
输入格式:
输出格式:
输入输出样例
输入样例#1: 复制
输出样例#1: 复制
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int fac[3]={2,3,5};
int main()
{
priority_queue<ll,vector<ll>,greater<ll> > pq; //小根
set<ll>s;
pq.push(1);
s.insert(1);
for(int i=1;;i++)
{
ll x=pq.top();//每回取一个,表明i就是第几个素数,细细体会
pq.pop();
if(i==1500)
{
printf("The 1500'th ugly number is %lld.\n",x);
break;
}
for(int j=0;j<3;j++)
{
ll x1=x*fac[j];
if(s.count(x1)==0)
{
s.insert(x1);
pq.push(x1);
}
}
}
return 0;
}