丑陋数
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 406 测试通过 : 151
总提交 : 406 测试通过 : 151
题目描述
“丑陋数”是指那些质因子只包含2,3或5的数(可以都不包含,所以1也是一个“丑陋数”)。数列1,2,3,4,5,6,8,9,10,12,...给出了前十个“丑陋数”。
给出正整数n,请输出第n个“丑陋数”。
给出正整数n,请输出第n个“丑陋数”。
输入
每行仅有一个正整数n(n<=1500),输入以“0”结尾。
输出
对于每一个输入的n,输出第n个“丑陋数”,对结尾的“n=0”不用作任何输出。
样例输入
1
2
9
0
样例输出
1
2
10
提示
#include <cstdio> #include<iostream> using namespace std; int a[1501]; int min(int x, int y, int z){ return min(x,min(y,z)); } int main(){ int x,y,z,i; a[1]=1; x=y=z=1; for(i=2;i<=1500;i++){ a[i]=min(2*a[x],3*a[y],5*a[z]); if(a[i]==2*a[x]) x++; if(a[i]==3*a[y]) y++; if(a[i]==5*a[z]) z++; } int n; while(scanf("%d",&n),n){ printf("%d ",a[n]); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。