갓-python의 도움을 받음.

from math import sqrt


class z14:

    def __init__(self, a, b): #a + b√14

        self.a = a

        self.b = b

    def __add__(self, other):

        return z14(self.a + other.a, self.b + other.b)

    def __mul__(self, other):

        return z14(self.a * other.a + 14 * self.b * other.b, self.a * other.b + self.b * other.a)

    def __int__(self):

        sum_ = self.a % 4

        if self.b < 1000000:

            sum_ += self.b * sqrt(14)

            sum_ -= int(sum_) % 4 * 4

            return int(sum_)

        k = self.b % 1000000

        sum_ += k * sqrt(14)

        for i in range(self.b % 1000000):

            sum_ += 1000000.0 * sqrt(14)

        sum_ -= int(sum_) % 4 * 4

        return int(sum_) % 4

        

    

x = z14(4, 1)

P = z14(4, 1)

Sum = 0

for i in range(1, 2022):

    Sum += int(P)

    Sum = Sum % 4

    P *= x

    


print(Sum)

이 코드는 a + b14 꼴의 수를 다루기 위해서 class z14를 만들었고, 거기에 곱을 오버로딩함. 

int는 a + b14 이하의 최대의 정수를 4로 나눈 나머지를 리턴함.

어쨌든 그렇게? 했더니
0이라고 나오네. 수학적이게 푸는 건 못하겠음