Дан код на питоне, в котором используются слишком большие для него числа и он никогда такое не посчитает, есть вариант запустить его на интерпретаторе Cobra, я попытался переписать код, следуя правилам кобры, но постоянно получаю ошибки. Компилирую на сайте
https://tio.run/#cobra. Исходный код на питоне:
def fib(n):
a = 0
b = 1
for _ in range(n):
a, b = b, a + b
return a
def power(x, e, n):
return pow(x, e) % n
def get_hash_sum():
n = power(power(13371337, 0xdeadbeeffeeddeef, 0xffffffffffffffff), 0xcafecafeabcd, 0xfffffff)
res = 0
while n > 0:
res += fib(n)
n = n // 2 if n % 2 == 0 else (n - 1) // 2
return res & 0xffffffffffffffff
def main():
print(f'Flag is Course{{{get_hash_sum()}}}')
if __name__ == '__main__':
main()
То, что я вроде как переписал на кобру:
class Fibb
def fib(n)
if n==1
return 0
else if n==2
return 1
else
return Fibonacci(n-1)+Fibonacci(n-2)
class Pow
def power(x, e, n)
return pow(x, e) % n
class Hash
def get_hash_sum()
n = Pow.power(Pow.power(13371337, 0xdeadbeeffeeddeef, 0xffffffffffffffff), 0xcafecafeabcd, 0xfffffff)
res = 0
while n > 0
res += Fibb.fib(n)
n = n // 2 if n % 2 == 0 else (n - 1) // 2
return res & 0xffffffffffffffff
class Program
def main
print(f'Flag is Course{{{Hash.get_hash_sum()}}}')