PTIT007 - Số đẹp 1

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Các bạn có 1 số nguyên dương ~N~ và bạn hãy tìm ra số đẹp nhỏ nhất mà lớn hơn hoặc bằng ~N~. Với số đẹp ở đây là số được tạo thành từ tổng các số lũy thừa của 3 khác nhau

Ví dụ:

  • ~4~ là số đẹp vì ~ 4 = 3^1 + 3^0~
  • ~30~ là số đẹp vì ~30 = 3^3 + 3^1 ~
  • ~6~ không phải số đẹp vì ~ 6 = 3^1 + 3^1 ~(chứa 2 lần ~3^1~)
  • ~20~ cũng không phải số đẹp vì ~20 = 3^2 + 3^2 + 3^0 + 3^0~

Input

  • Dòng đầu tiên chứa số nguyên ~T~ ~(1 \le T \le 500)~
  • ~T~ dòng tiếp theo mỗi dòng chứa số nguyên dương ~N~ ~(1 \le N \le 10000)~

Output

In kết quả là số thỏa mãn yêu cầu đề bài trên từng dòng tương ứng với từng test

Sample

Input #1
5
1
2
14
360
10000
Output #1
1
3
27
360
19683

Problem source: CLB Lập Trình PTIT


Bình luận

Please read the guidelines before commenting.



  • 0
    mducc  đã bình luận lúc 19, Tháng 6, 2026, 12:59

    Code tham khảo (C++)

    #include <bits/stdc++.h>
    
    using namespace std;
    
    bool check(int n) {
      while(n) {
        if(n % 3 == 2) return false; 
        n /= 3; 
      }
      return true; 
    }
    
    int t;
    int n;
    
    int main() {
      ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
      cin>>t;
      while(t--) {
        int n;
        cin>>n;
        while(!check(n)) ++n; 
        cout<<n<<'\n';
      }
      return 0;
    }