136 - Ugly Numbers

UVa網站題目連結
My Solved Problems Performance

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 and Output

There is no input to this program. 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

  1. public class Main {

  2. public static void main (String[] args) {

  3. int size = 1500;

  4. int counter = 1;
  5. int result = 0;
  6. for (int i=2; counter<size; i++) {
  7. int x = i;

  8. while ((x%5==0)) {
  9. x/=5;
  10. };
  11. while ((x%3==0)) {
  12. x/=3;
  13. };
  14. while ((x%2==0)) {
  15. x/=2;
  16. };

  17. if (x==1) {
  18. counter++;
  19. }
  20. if (counter == size) result = i;
  21. }
  22. System.out.println("The 1500'th ugly number is " + result + ".");
  23. // The 1500'th ugly number is 859963392.
  24. }
  25. }

關鍵字:UVa Online Judge, ACM. Java

留言

這個網誌中的熱門文章

【銀行代碼查詢】3碼銀行代碼列表、7碼分行代碼查詢

【台北中壢】國道客運/公車路線(1818,2022,9001,9025)!

【博客來折價券】博客來免費序號e-coupon分享(持續更新)

【Hami Video】影劇/電視/運動館免費體驗/試用序號分享(隨時更新)!

Windows 關機、重開機 Command Line (cmd) 指令