1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <cstdio>
#include <vector>

using namespace std;

int main()
{
    vector<char> vc;
    char cc = ' ';
    while (cc != '\n')
    {
        scanf("%c", &cc);
        if (cc != '\n') vc.push_back(cc);
    }

    long long int w = vc[0] - 48;;
    for (int i = 1; i < vc.size(); i++)
    {
        w *= 10;
        w += vc[i] - 48;
    }

    int len = vc.size();

    long long int cykl = 0;
    long long int mod = 1;
    for (int i = 0; i < len; i++)
        mod *= 10;
    if (len == 1) cykl = 60;
    else if (len == 2) cykl = 300;
    else
    {
        cykl = 1500;
        for (int i = 3; i < len; i++)
        {
            cykl *= 10;
        }
    }

    if (w == 0)
    {
        printf("0");
        return 0;
    }
    if (w == 1)
    {
        printf("1");
        return(0);
    }

    long long int a = 0;
    long long int b = 1;
    long long int c = 1;
    for (long long int i = 3; i <= cykl; i++)
    {
        a = b;
        b = c;
        c = a + b;
        c %= mod;

        if (c == w)
        {
            printf("%lld", i);
            return(0);
        }
    }
    printf("NIE");
}