描述
“丑陋数”是指那些质因子只包含2,3或5的数(可以都不包含,所以1也是一个“丑陋数”)。数列1,2,3,4,5,6,8,9,10,12,...给出了前十个“丑陋数”。 给出正整数n,请输出第n个“丑陋数”。
输入
每行仅有一个正整数n(n<=1500),输入以“0”结尾。
输出
对于每一个输入的n,输出第n个“丑陋数”,对结尾的“n=0”不用作任何输出。
样例输入
1
2
9
0
样例输出
1
2
10
#include<iostream> #include<deque> using namespace std; int max(int a,int b) { return a>=b?(a):(b); } int min(int a,int b) { return a<b?(a):(b); } deque<int> A,B,C,S; int main() { int i,temp,n; i=1; S.push_back(1); int r=i; while(S.size()<1501) { r=S[i-1]; A.push_back(r*2); B.push_back(r*3); C.push_back(r*5); temp=min(A.front(),B.front()); temp=min(temp,C.front()); if(A.front()==temp) { A.pop_front(); } if(B.front()==temp) { B.pop_front(); } if(C.front()==temp) { C.pop_front(); } S.push_back(temp); i++; } while(scanf("%d",&n)!=EOF) { if(!n) break; cout<<S[n-1]<<endl; } return 0; }