#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
unsigned long long int n, ile, dziel, fib1, fib2, tmp, odj=1000000000;
int main()
{
ios_base::sync_with_stdio(0);
cin>>n;
odj=odj*1000000000;
if(n>=odj){
dziel=odj*10;
}else if(n>odj/10){
dziel=odj;
}else if(n>odj/100){
dziel=odj/10;
}else if(n>odj/1000){
dziel=odj/100;
}else if(n>odj/10000){
dziel=odj/1000;
}else if(n>odj/100000){
dziel=odj/10000;
}else if(n>odj/1000000){
dziel=odj/100000;
}else if(n>odj/10000000){
dziel=odj/1000000;
}else if(n>odj/100000000){
dziel=odj/10000000;
}else if(n>odj/1000000000){
dziel=odj/100000000;
}else if(n>1000000000){
dziel=odj/1000000000;
}else if(n>100000000){
dziel=1000000000;
}else if(n>10000000){
dziel=100000000;
}else if(n>1000000){
dziel=10000000;
}else if(n>100000){
dziel=1000000;
}else if(n>10000){
dziel=100000;
}else if(n>1000){
dziel=10000;
}else if(n>100){
dziel=1000;
}else if(n>10){
dziel=100;
}else if(n>1){
dziel=10;
}
fib1=0;
fib2=1;
ile=2*dziel;
if(ile>100000000){
ile=100000000;
}
for(int i=1; i<ile; i++){
tmp=fib1+fib2;
if(tmp>odj){
tmp=tmp-odj;
}
fib1=fib2;
fib2=tmp;
if(tmp%dziel==n){
cout<<i+1;
return 0;
}
}
cout<<"NIE";
return 0;
}
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | #include <iostream> #include <algorithm> #include <string> #include <vector> #include <fstream> using namespace std; unsigned long long int n, ile, dziel, fib1, fib2, tmp, odj=1000000000; int main() { ios_base::sync_with_stdio(0); cin>>n; odj=odj*1000000000; if(n>=odj){ dziel=odj*10; }else if(n>odj/10){ dziel=odj; }else if(n>odj/100){ dziel=odj/10; }else if(n>odj/1000){ dziel=odj/100; }else if(n>odj/10000){ dziel=odj/1000; }else if(n>odj/100000){ dziel=odj/10000; }else if(n>odj/1000000){ dziel=odj/100000; }else if(n>odj/10000000){ dziel=odj/1000000; }else if(n>odj/100000000){ dziel=odj/10000000; }else if(n>odj/1000000000){ dziel=odj/100000000; }else if(n>1000000000){ dziel=odj/1000000000; }else if(n>100000000){ dziel=1000000000; }else if(n>10000000){ dziel=100000000; }else if(n>1000000){ dziel=10000000; }else if(n>100000){ dziel=1000000; }else if(n>10000){ dziel=100000; }else if(n>1000){ dziel=10000; }else if(n>100){ dziel=1000; }else if(n>10){ dziel=100; }else if(n>1){ dziel=10; } fib1=0; fib2=1; ile=2*dziel; if(ile>100000000){ ile=100000000; } for(int i=1; i<ile; i++){ tmp=fib1+fib2; if(tmp>odj){ tmp=tmp-odj; } fib1=fib2; fib2=tmp; if(tmp%dziel==n){ cout<<i+1; return 0; } } cout<<"NIE"; return 0; } |
English