刚才到国家专利的查询网站上查询几个专利,手里只有当年备注下来的专利申请号,长 12 位,结果网站要求必须输入 13 位的。百度以后才知道,不知道什么时候后面多了个校验位,而且翻了半天也没找到有现成的在线网站能直接转换。
手写了一段 Python,一次成功,一个字符都没再改。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
sn = input("请输入 12 位专利申请号:") print(f"你的输入是:{sn};") if len(sn) != 12: print("输入长度不正确。") exit() # 检验新申请号正误也有一个公式, # 即申请号第 1 位数乘以 2,第 2 位数乘以 3,第 3 位数乘以 4,直到第 8 位数乘以 9, # 第 9 位数乘以 2,第 10 位数乘以 3,第11 位数乘以 4,第 12 位数乘以 5,将它们的乘积相加, # 所得的和,再除以 11, 余数即为申请号的第 14 位数 sum = 0 mul = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5] for i in range(len(mul)): sum += int(sn[i]) * mul[i] sum %= 11 print('X' if sum == 10 else sum) |