1 def INTO(list): 2 sum = 0; 3 length = len(list) 4 for i in range(length): 5 sum+=list[i]*pow(2,i) 6 return sum 7 #计算地址掩码 8 def caculate(a): 9 x = int(a) 10 i = x // 8 11 n = x % 8 12 list = [] 13 if x<1 or x>30: 14 return 15 if i==0: 16 for j in range(8): 17 if j<n: 18 list.append(1) 19 else: 20 list.append(0) 21 list.reverse() 22 ans = INTO(list) 23 num = pow(2,32-x)-2 24 print("%d.0.0.0 %d" %(ans,num)) 25 return 26 if i==1: 27 for j in range(8): 28 if j < n: 29 list.append(1) 30 else: 31 list.append(0) 32 list.reverse() 33 ans = INTO(list) 34 num = pow(2,32-x)-2 35 print("255.%d.0.0 %d" %(ans,num)) 36 return 37 if i==2: 38 for j in range(8): 39 if j < n: 40 list.append(1) 41 else: 42 list.append(0) 43 list.reverse() 44 ans = INTO(list) 45 num = pow(2,32-x)-2 46 print("255.255.%d.0 %d" %(ans,num)) 47 return 48 if i==3: 49 for j in range(8): 50 if j < n: 51 list.append(1) 52 else: 53 list.append(0) 54 list.reverse() 55 ans = INTO(list) 56 num = pow(2,32-x)-2 57 print("255.255.255.%d %d" %(ans,num)) 58 return 59 def func(): 60 while True: 61 try: 62 a = input() 63 caculate(a) 64 except EOFError: 65 break 66 if __name__ == '__main__': 67 func()