-->

a020: 身分證檢驗

内容 :

我國的身分證字號有底下這樣的規則,因此對於任意輸入的身分證字號可以有一些基本的判斷原則,請您來判斷一個身分證字號是否是正常的號碼(不代表確有此號、此人)。
(1) 英文代號以下表轉換成數字
A=10 台北市 J=18 新竹縣 S=26 高雄縣
B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣
D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 W=32 金門縣
F=15 台北縣 O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山
H=17 桃園縣 Q=24 嘉義縣 Z=33 連江縣
I=34 嘉義市 R=25 台南縣
(2) 英文轉成的數字, 個位數乘9再加上十位數的數字
(3) 各數字從右到左依次乘1、2、3、4....8
(4) 求出(2),(3) 及最後一碼的和
(5) (4)除10 若整除,則為 real,否則為 fake
例: T112663836
2 + 7*9 + 1*8 + 1*7 + 2*6 + 6*5 + 6*4 + 3*3 + 8*2 + 3*1 + 6 = 180
除以 10 整除,因此為 real

输入说明 : 

一組身分證號碼

输出说明 : 

輸出 real or fake

Python:

while True :
    s = input()
    a = 0
    num = 0
    if s[0] == 'A' : a = 10
    if s[0] == 'B' : a = 11
    if s[0] == 'C' : a = 12
    if s[0] == 'D' : a = 13
    if s[0] == 'E' : a = 14
    if s[0] == 'F' : a = 15
    if s[0] == 'G' : a = 16
    if s[0] == 'H' : a = 17
    if s[0] == 'I' : a = 34
    if s[0] == 'J' : a = 18
    if s[0] == 'K' : a = 19
    if s[0] == 'L' : a = 20
    if s[0] == 'M' : a = 21
    if s[0] == 'N' : a = 22
    if s[0] == 'O' : a = 35
    if s[0] == 'P' : a = 23
    if s[0] == 'Q' : a = 24
    if s[0] == 'R' : a = 25
    if s[0] == 'S' : a = 26
    if s[0] == 'T' : a = 27
    if s[0] == 'U' : a = 28
    if s[0] == 'V' : a = 29
    if s[0] == 'W' : a = 32
    if s[0] == 'X' : a = 30
    if s[0] == 'Y' : a = 31
    if s[0] == 'Z' : a = 33
    num = (a - a % 10 * 10) + (a % 10) * 9
    for x in range(8) :
        sum = int(s[x + 1]) * (x + 1)
    sum += int(s[9])
    if sum % 10 == 0 :
        print('real')
    else :
        print('fake')