# pA. 阿姆斯壯數
```python=
s = input()
l = len(s)
ans = 0
for i in s:
ans += int(i)**l
print(ans == int(s))
```
# pB. 完美數
```python=
n = int(input())
ans = 1
for i in range(2, int(n**0.5)+1):
if not(n%i):
if i*i == n:
ans += i
else:
ans += i
ans += n//i
print(ans == n)
```
# pC. 質因數
```python=
n = int(input())
ans = []
for i in range(2, n):
if not(n%i):
for j in range(2, int(i**0.5)+1):
if not(i%j):
break
else:
ans.append(i)
print(ans)
```
# pD. 噁爛數
```python=
n = int(input())
ans = []
for i in range(6, n):
if not(n%i):
for j in range(2, int(i**0.5)+1):
if not(i%j):
break
else:
print("False")
break
else:
print("True")
```
# pE. 所有個數平方和
```python=
s = input()
ans = 0
for i in s:
ans += int(i)**2
print(ans)
```
# pF. 快樂數
```python=
n = int(input())
while True:
if n == 1: break
i = 0
while n:
i = i+(n%10)**2
n = n//10
if i == 4:
break
n = i
print(n == 1)
```
# pG. 漢明距離
```python=
def toBin(n: str):
n = bin(int(n))[2::]
if len(n) != 20:
n = '0'*(20-len(n))+n
return n
def distance(n1, n2):
ans = 0
for i in range(20):
if n1[i] != n2[i]:
ans += 1
return ans
n, m = input().split()
n = toBin(n)
m = toBin(m)
print(n)
print(m)
print(distance(n, m))
```
# pH. 重複文字只保留一個
```python=
def keepFirst(s):
a = ""
for i in s:
if i not in a:
a += i
return a
def keepLast(s):
a = ""
for i in s[::-1]:
if i not in a:
a += i
return a[::-1]
s = input()
print(keepFirst(s))
print(keepLast(s))
```
# pI. 二維矩陣
```python=
def symmetric(arr, n):
for i in range(0, n-1):
for j in range(i+1, n):
if arr[i][j] != arr[j][i]:
return False
return True
s = input().split()
n = int(len(s)**0.5)
arr = [[0]*(n) for _ in range(n)]
N = 0
for i in range(n):
for j in range(n):
arr[i][j] = s[N]
N += 1
print(symmetric(arr, n))
```
# pJ. OX 棋
```python=
def winner(arr):
if arr[0][0] == arr[0][1] == arr[0][2]: return arr[0][0]
elif arr[1][0] == arr[1][1] == arr[1][2]: return arr[1][0]
elif arr[2][0] == arr[2][1] == arr[2][2]: return arr[2][0]
elif arr[0][0] == arr[1][0] == arr[2][0]: return arr[0][0]
elif arr[0][1] == arr[1][1] == arr[2][1]: return arr[0][1]
elif arr[0][2] == arr[1][2] == arr[2][2]: return arr[0][2]
elif arr[0][0] == arr[1][1] == arr[2][2]: return arr[0][0]
elif arr[0][2] == arr[1][1] == arr[2][0]: return arr[0][2]
return '平手'
s = input().split()
n = 3
arr = [[0]*(3) for _ in range(3)]
N = 0
for i in range(3):
for j in range(3):
arr[i][j] = s[N]
N += 1
print(winner(arr))
```
WA
# pK. 二維矩陣 2
```python=
def middle(arr, n):
for j in range(n):
M = sorted([arr[i][j] for i in range(3)])[1]
arr[0][j] = M; arr[1][j] = M; arr[2][j] = M
return arr
s = [int(i) for i in input().split()]
n = len(s)//3
arr = [[0]*(n) for _ in range(3)]
N = 0
for i in range(3):
for j in range(n):
arr[i][j] = s[N]
N += 1
print(middle(arr, n))
```
# pL. 磅數公斤
```python=
while True:
try:
print(round(float(input())*0.454, 2))
except:
break
```
# pM. 華氏轉攝氏
```python=
while True:
try:
print(f"C={int((float(input())-32)*5/9)}")
except:
break
```
# pN. BMI
```python=
while True:
try:
w, h = map(int, input().split())
print(round(w/(h/100)**2, 2))
except:
break
```
# pO. 整數商餘
```python=
while True:
try:
m, n = map(int, input().split())
print(m//n, m%n)
except:
break
```
# pP. 四數有權重的相加
```python=
while True:
try:
a, b, c, d = map(int, input().split())
print(56*a + 24*b + 14*c + 6*d)
except:
break
```
# pQ. 錢
```python=
while True:
try:
X, Y, Z = map(int, input().split())
print((Z-Y+X)//2, (Y-Z+X)//2, (Y-(Y-Z+X)//2))
except:
break
```
# pR. 輸出星期幾
```python=
import datetime
weekday = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
for _ in range(int(input())):
m, d = map(int, input().split())
print(weekday[datetime.date(2021,m,d).weekday()])
```
# pS. 四數有權重的相加 之後再算 費波那契數
```python=
```
# pT. 排序 (Sort)
```python=
while True:
try:
print(sorted(eval(input()), reverse=True))
except:
break
```
# pU. 氣泡 (Bubble Sort)
```python=
while True:
try:
s = list(eval(input()))
for i in range(2):
for j in range(0, len(s)-i-1):
if s[j] > s[j+1]:
s[j], s[j+1] = s[j+1], s[j]
print(s)
except:
break
```