fork download
  1. #include <iostream>
  2. #include <tuple>
  3. #include <cstdint>
  4.  
  5. std::tuple<std::uintmax_t, std::intmax_t> IsFib(const std::uintmax_t& N) {
  6. std::uintmax_t A = 0;
  7. std::uintmax_t B = 1;
  8. std::uintmax_t C = 0;
  9.  
  10. std::uintmax_t i = 0;
  11.  
  12. for (i = 0; C < N; i++) {
  13. C = A + B;
  14. A = B;
  15. B = C;
  16. }
  17.  
  18. return { N,C == N ? i+1 : -1 };
  19. }
  20.  
  21. int main() {
  22.  
  23. std::size_t L = 128;
  24.  
  25. for (std::size_t i = 0; i < L; i++) {
  26. std::uintmax_t N = 0;
  27. std::intmax_t P = 0;
  28. std::tie(N, P) = IsFib(i);
  29.  
  30. std::cout << N << ',' << P << std::endl;
  31. }
  32.  
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0s 4544KB
stdin
Standard input is empty
stdout
0,1
1,2
2,3
3,4
4,-1
5,5
6,-1
7,-1
8,6
9,-1
10,-1
11,-1
12,-1
13,7
14,-1
15,-1
16,-1
17,-1
18,-1
19,-1
20,-1
21,8
22,-1
23,-1
24,-1
25,-1
26,-1
27,-1
28,-1
29,-1
30,-1
31,-1
32,-1
33,-1
34,9
35,-1
36,-1
37,-1
38,-1
39,-1
40,-1
41,-1
42,-1
43,-1
44,-1
45,-1
46,-1
47,-1
48,-1
49,-1
50,-1
51,-1
52,-1
53,-1
54,-1
55,10
56,-1
57,-1
58,-1
59,-1
60,-1
61,-1
62,-1
63,-1
64,-1
65,-1
66,-1
67,-1
68,-1
69,-1
70,-1
71,-1
72,-1
73,-1
74,-1
75,-1
76,-1
77,-1
78,-1
79,-1
80,-1
81,-1
82,-1
83,-1
84,-1
85,-1
86,-1
87,-1
88,-1
89,11
90,-1
91,-1
92,-1
93,-1
94,-1
95,-1
96,-1
97,-1
98,-1
99,-1
100,-1
101,-1
102,-1
103,-1
104,-1
105,-1
106,-1
107,-1
108,-1
109,-1
110,-1
111,-1
112,-1
113,-1
114,-1
115,-1
116,-1
117,-1
118,-1
119,-1
120,-1
121,-1
122,-1
123,-1
124,-1
125,-1
126,-1
127,-1