def checkip(ip):
"""判读是否为IP的函数"""
if len(ip) != 4:
return False
flag = 0
for sec in ip:
if 0 <= int(sec) <= 255 and sec == str(int(sec)):
flag += 1
return flag == 4
def checksub(submask):
'''进一步判断是否为掩码的函数'''
tem = ''
for sec in submask:
tem += bin(int(sec))[2:].rjust(8, "0")
if tem[0] == 0 or tem[-1] == 1:
return False
p = tem.find("0")
if "1" in tem[p:]:
return False
return True
def check(ip1, ip2, submask):
"""判读两ip是否为同一子网的函数"""
if not checkip(submask) or not checksub(submask) or not checkip(ip1) or not checkip(ip2):
return 1
lsub = []
lip1, lip2 = [], []
tmp1, tmp2 = '', ''
for i in range(4):
lsub.append(bin(int(submask[i]))[2:].rjust(8, "0"))
lip1.append(bin(int(ip1[i]))[2:].rjust(8, "0"))
lip2.append(bin(int(ip2[i]))[2:].rjust(8, "0"))
for j in range(4):
for k in range(8):
tmp1 += str(int(lip1[j][k]) and int(lsub[j][k]))
tmp2 += str(int(lip2[j][k]) and int(lsub[j][k]))
if tmp1 == tmp2:
return 0
else:
return 2
while True:
try:
submask = input().split(".")
ip1 = input().split(".")
ip2 = input().split(".")
print(check(ip1, ip2, submask))
except:
break