poj 1338 ugly number

来源:互联网 发布:淘宝鱼塘是什么意思 编辑:程序博客网 时间:2024/04/30 16:04

Language:
Ugly Numbers
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 20855 Accepted: 9252

Description

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, ... 
shows the first 10 ugly numbers. By convention, 1 is included. 
Given the integer n,write a program to find and print the n'th ugly number. 

Input

Each line of the input contains a postisive integer n (n <= 1500).Input is terminated by a line with n=0.

Output

For each line, output the n’th ugly number .:Don’t deal with the line with n=0.

Sample Input

1290

Sample Output

1210

Source

New Zealand 1990 Division I,UVA 136



#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;__int64 p[1505];//p[1500]=859963392int main(){int n;int i,j;int b2,b3,b5;p[1]=1;b2=b3=b5=1;    for(i=2;i<1550;i++)    {        __int64 temp=p[b2]*2;    if(temp>p[b3]*3)       temp=p[b3]*3;    if(temp>p[b5]*5)       temp=p[b5]*5;    p[i]=temp;       if(p[i]==p[b2]*2)  b2++;    if(p[i]==p[b3]*3)  b3++;    if(p[i]==p[b5]*5)  b5++;        }while(scanf("%d",&n),n){printf("%I64d\n",p[n]);}return 0;}



0 0
原创粉丝点击