Điểm:
200 (p)
Thời gian:
1.0s
Bộ nhớ:
1023M
Input:
bàn phím
Output:
màn hình
Bạn được cho 1 số nguyên dương \(N\). Hãy viết chương trình kiểm tra \(N\) có phải số Fibo hay không ?
Biết rằng số Fibo là số thuộc trong dãy số có quy luật như sau: \(0, 1, 1, 2, 3, 5, 8, 13, ...\)
Input
-
Dòng đầu tiên chứa số nguyên \(T \ (T \leq 10^5)\) – là số câu hỏi
-
\(T\) dòng tiếp theo,mỗi chứa 1 số nguyên dương \(N\) \((1 \leq N \leq 10^{10})\)
Output
- \(T\) dòng, in ra
IsFibo
nếu N là số Fibo, ngược lại in raIsNotFibo
Example
Test 1
Input
3
5
7
8
Output
IsFibo
IsNotFibo
IsFibo
Bình luận
\(\color{red}{\text{Spoiler Alert}_{{}_{{}^{{}^{v2.0}}}}}\)
\(\color{red}{\text{Khuyến khích bạn đọc trước khi đọc phần lời giải xin hãy thử code ra thuật của mình dù nó có sai hay đúng}}\)
\(\color{red}{\text{Sau đó từ phần bài giải và thuật toán trước đó mà đối chiếu, rút nhận xét với thuật của mình và thu được bài học (không lãng phí thời gian đâu).}}\)
---
\(\color{orange}{\text{Hint }}\)
\(\color{green}{\text{Preference AC Code }}\): Online Solving
\(^{^{\color{purple}{\text{Complexity : }} O(t*log(n))\ \color{purple}{\text{time}}\ \color{purple}{\text{memory}}}}\)
By the way, có một cách khác để tiếp cận đó là
\(n\) là số fibonacci \(\Leftrightarrow\) \((5 * n ^ 2 + 4)\) hoặc \((5 * n ^ 2 – 4)\) là số chính phương
\(5n^2+4\) và \(5n^2-4\) kiểm tra số chính phương có vẻ khó vì \(n\sim 1e10\) !
hể