import sys if len(sys.argv) > 1: supposed_inn = sys.argv[1] else: supposed_inn = "123456789" def calc_checksum_digit(weights, inn): inn_splitted = list(map(int, inn)) res = 0 for i in range(len(inn_splitted)): res += inn_splitted[i] * weights[i] res %= 11 if res > 9: res %= 10 return str(res) def calc_checksum_digit_individuals(inn): inn = inn[:10] c1 = calc_checksum_digit((7,2,4,10,3,5,9,4,6,8,0), inn) c2 = calc_checksum_digit((3,7,2,4,10,3,5,9,4,6,8,0), inn + c1) return inn + c1 + c2 def calc_checksum_digit_jl(inn): inn = inn[:9] c = calc_checksum_digit((2,4,10,3,5,9,4,6,8,0), inn) return inn + c def calc_checksum_digit_for_inn(inn): if len(inn) >= 10: return calc_checksum_digit_individuals(inn) elif len(inn) >= 9: return calc_checksum_digit_jl(inn) else: return None inn = calc_checksum_digit_for_inn(supposed_inn) if inn is None: print("Invalid INN", supposed_inn) else: print(inn)