

身份证校验问题,输入一个n,表示接下来有n行身份证号码,统计正确的身份证号码,在输出正确的个数
n = int(input())
w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]
ans = 0
for _ in range(n):
id = input()
s = sum(int(id[i])*w[i] for i in range(17))
if id[-1] in "Xx": s += 10
else: s += int(id[-1])
if s % 11 == 1: ans += 1
print(ans)
def is_valid_id_number(id_number):
factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
if len(id_number) != 18:
return False
if not id_number[:-1].isdigit():
return False
if id_number[-1] not in parity:
return False
sum = 0
for i in range(17):
sum += int(id_number[i]) * factor[i]
check = parity[sum % 11]
return check == id_number[-1]
n = int(input())
count = 0
for i in range(n):
id_number = input()
if is_valid_id_number(id_number):
count += 1
print(count)