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


留言

相關文章

這個網誌中的熱門文章

【信用卡排行榜】2020國內外必辦現金回饋信用卡推薦!

【證件遺失補辦】身分證/健保卡/駕照/行照/信用卡總整理

筆電切換網路設定軟體推薦整理

【富邦信用卡】LINE Pay Money繳卡費賺2% (已額滿)!

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

【台新街口聯名卡】加油18%神卡!新戶最高8%、舊戶5%!

【永豐幣倍卡】行動支付神卡=免換匯行動支付6%最高9%!

【聯邦+LINE繳帳單2%】繳費條碼產生器/自訂金額賺回饋!