0

だから私はPythonでこのコードを持っていますが、数値が大きすぎてPythonが処理できないため、実行されません.Cobraのように、C ++とほぼ同じように高速に動作し、このようなタスクを処理できることがわかりました。自分でコードを書き直そうとしましたが、コンパイル エラーが発生し続け、オンライン コンパイラtio.runでコンパイルしています。

元のコードは次のとおりです。

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()

そして、これは、インターネット上のpythonとcobraの違いに関する私の調査に基づいて書き直そうとした結果です。これはかなり貧弱です。

class Fibb
    def fib(n)
        a = 0
        b = 1
        for _ in range(n)
            a, b = b, a + b
        return a

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()}}}')
4

0 に答える 0