trang chủ / đề bài / dhbb23_cvp_10_b

Fibo

Đề bài

Mô tả

Dãy Fibonacci được định nghĩa như sau:

  • Fk=k nếu k∈{0;1},
  • Fk=Fk−1+Fk−2 nếu k>1.

Sau đây là một vài số đầu tiên của dãy: 0;1;1;2;3;5;8;13;21;34;55;…

Yêu cầu: Viết chương trình kiểm tra xem một số nguyên có thể được phân tích thành tích của hai số trong dãy Fibonacci hay không?

Nói cách khác, với mỗi số n, cần kiểm tra xem có tồn tại hai chỉ số i,j≥0 (có thể i=j) sao cho n=Fi×Fj hay không.

Dữ liệu vào

  • Dòng đầu tiên gồm số nguyên t (1≤t≤10), là số số nguyên cần kiểm tra.
  • t dòng tiếp theo, dòng thứ i ghi số nguyên ni (0≤ni≤109).

Dữ liệu ra

Gồm t dòng, dòng thứ i ghi "YES" nếu ni có thể phân tích thành tích của hai số trong dãy Fibonacci, nếu không ghi "NO".

Ràng buộc

  • 1≤t≤10
  • 0≤ni≤109

Ví dụ

Input Output Giải thích
5
5
4
12
11
10
YES
YES
NO
NO
YES
5=1×5, 4=2×2, 10=2×5. Không có cách viết 12 hay 11 thành tích của hai số Fibonacci.
5
0
1
9
701408733
7
YES
YES
YES
YES
NO
Ví dụ thêm. 0=0×3, 1=1×1, 9=3×3 (hai thừa số có thể bằng nhau), 701408733=1×F44. Số 7 không phân tích được.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0