poj 1338 Ugly Numbers
#include <stdio.h> int min(int a,int b,int c) { if(a<=b&&a<=c)return a; if(b<=a&&b<=c)return b; if(c<=a&&c<=b)return c; } int main() { int n,i,j=1,k=1,l=1,ans[1505]; ans[1]=1; for (i=2;i<=1500;i++) { ans[i]=min(ans[j]*2,ans[k]*3,ans[l]*5); if(ans[i]==ans[j]*2)j++; if(ans[i]==ans[k]*3)k++; if(ans[i]==ans[l]*5)l++; } while (scanf("%d",&n)!=EOF&&n) { printf("%d\n",ans[n]); } return 0; }