갓-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 + b√14 꼴의 수를 다루기 위해서 class z14를 만들었고, 거기에 곱을 오버로딩함.
int는 a + b√14 이하의 최대의 정수를 4로 나눈 나머지를 리턴함.
어쨌든 그렇게? 했더니
0이라고 나오네. 수학적이게 푸는 건 못하겠음