# 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 ```