Иван обожает числа и последовательности чисел. Недавно он узнал, что существует последовательность чисел, называемая числами Фибоначчи. Определяется она следующими правилами:
F_0 = 0F
0
=0
F_1 = 1F
1
=1
F_n = F_{n-1} + F_{n-2}F
n
=F
n−1
+F
n−2
.
Теперь Иван хочет узнать, сколько чисел из его коллекции содержатся в этой последовательности.
Формат входных данных
Входной файл содержит единственное целое число N\space (0\leq N\leq 10^{17})N (0≤N≤10
17
) — число, которое Ваня хочет проверить на принадлежность к последовательности Фибоначчи.
Формат выходных данных
Если данное число не принадлежит последовательности Фибоначчи, то выведите -1−1, иначе выведите его номер в последовательности. Если число встречается в последовательности несколько раз, выведите номер его первого вхождения.
Sample Input 1:
0
Sample Output 1:
0
Sample Input 2:
1
Sample Output 2:
1
Sample Input 3:
9
Sample Output 3:
-1
Sample Input 4:
55
Sample Output 4:
10
Напишите программу. Тестируется через stdin → stdout
Time Limit: 6 секунд
Memory Limit: 64 MB
писать на любом языке,главное не на паскале,и показать на каком
p=(a+b+c)/2
Программа:
program z;
var a1,b1,c1,a2,b2,c2,p1,p2,s1,s2:real;
begin
readln(a1,b1,c1); {ввод длин сторон первого треугольника}
p1:=(a1+b1+c1)/2; {полупериметр первого треугольника}
s1:=sqrt(p1*(p1-a1)*(p1-b1)*(p1-c1)); {площадь первого треугольника}
readln(a2,b2,c2); {ввод длин сторон второго треугольника}
p2:=(a2+b2+c2)/2; {полупериметр второго треугольника}
s2:=sqrt(p2*(p2-a2)*(p2-b2)*(p2-c2)); {площадь второго треугольника}
if s1=s2 {если площади треугольников равны}
then writeln('Yes') {то вывести положительный ответ}
else writeln('No'); {иначе вывести отрицательный ответ}
end.