Problem Description
source:https://uva.onlinejudge.org/external/1/136.html
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, 15, ...
shows the first 11 ugly numbers. By convention, 1 is included.
Write a program to find and print the 1500’th ugly number.
Input
There is no input to this program.
Output
Output should consist of a single line as shown below, with ‘’ replaced by the number
computed.
Sample Output
The 1500'th ugly number is <number>.
Solution:
source:https://uva.onlinejudge.org/external/1/136.html
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, 15, ...
shows the first 11 ugly numbers. By convention, 1 is included.
Write a program to find and print the 1500’th ugly number.
Input
There is no input to this program.
Output
Output should consist of a single line as shown below, with ‘
Solution:
#include<stdio.h> #define min(a,b) (a<b? a:b) long ugly[1502],x,y,z; void UglyGen() { int a,b,c,n; ugly[1]=a=b=c=n=1; while(n!=1500) { x=2*ugly[a]; y=3*ugly[b]; z=5*ugly[c]; ugly[++n]=min(x,min(y,z)); if(ugly[n]==x) a++; if(ugly[n]==y) b++; if(ugly[n]==z) c++; } } int main() { UglyGen(); printf("The 1500'th ugly number is %ld.\n",ugly[1500]); return 0; }
No comments:
Post a Comment
Write your comment - Share Knowledge and Experience