Algorithm/lanqiao/series13sheng/retry_tb.py

84 lines
1.2 KiB
Python
Raw Normal View History

2022-04-10 05:47:28 +08:00
import math
nums = [
[2, 1],
[3, 2],
[4, 1],
[5, 4],
[6, 5],
[7, 4],
[8, 1],
[9, 2],
[10, 9],
[11, 0],
[12, 5],
[13, 10],
[14, 11],
[15, 14],
[16, 9],
[17, 0],
[18, 11],
[19, 18],
[20, 9],
[21, 11],
[22, 11],
[23, 15],
[24, 17],
[25, 9],
[26, 23],
[27, 20],
[28, 25],
[29, 16],
[30, 29],
[31, 27],
[32, 25],
[33, 11],
[34, 17],
[35, 4],
[36, 29],
[37, 22],
[38, 37],
[39, 23],
[40, 9],
[41, 1],
[42, 11],
[43, 11],
[44, 33],
[45, 29],
[46, 15],
[47, 5],
[48, 41],
[49, 46],
]
def check(number):
for num, mod in nums:
a, b = divmod(number, num)
if b != mod:
print(f"{number} % {num} == {number % num} != {mod}")
return False
print(f"{number}: pass.")
return True
def lcm(a, b):
return a * b // math.gcd(a, b)
ans = 2022040920220409
check(ans)
2022-04-10 05:51:10 +08:00
# 中国剩余定理
ans = product = 1
2022-04-10 05:47:28 +08:00
for num, mod in nums:
while ans % num != mod:
ans += product
product = lcm(product, num)
print(f"{ans} % {num} == {mod}")
print(ans)
check(ans)