#Q1
d = '5/6 + 7/8'
a,b = d.split('+')
au,ad =map(int, a.split('/'))
bu,bd =map(int, b.split('/'))
cu = au*bd + bu*ad
cd = ad*bd
gcd = 1
for i in range(2,cd+1):
if cu%i==0 and cd%i==0:
gcd = i
print(d.replace('/',' / '),'=',int(cu/gcd),'/',int(cd/gcd))
print()
#Q2
for n in range(10):
dd = 'B12345678'+str(n)
d2 = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.index(dd[0])+10
x1 = d2//10
x2 = d2%10
d = [int(i) for i in dd[1:]]
d = [0] + d
y = x1 + 9 * x2
k = 8
for i in range(1,7+1):
y = y + k*d[i]
k-=1
y = y + d[8]+d[9]
msg = 'OK'
if not(y%10==0):
msg = 'CHECK SUM ERROR'
print(f'{dd:15} {msg:<10} ')
Output:
5 / 6 + 7 / 8 = 41 / 24 B123456780 OK B123456781 CHECK SUM ERROR B123456782 CHECK SUM ERROR B123456783 CHECK SUM ERROR B123456784 CHECK SUM ERROR B123456785 CHECK SUM ERROR B123456786 CHECK SUM ERROR B123456787 CHECK SUM ERROR B123456788 CHECK SUM ERROR B123456789 CHECK SUM ERROR
沒有留言:
張貼留言