如題 見主文

# P1

見輸出入說明

# Input

每次單筆輸入 總共一行
給予一非負整數 n (n 沒給上限)

# Output

輸出一行
輸出 n 之所有因數

Solution
n = int(input())
for i in range(1, n + 1):
    if not n % i:
        print(i, end=' ')

# P2

有一種數稱之為 Armstrong 數,其定義為各位數字的三方相加之和等於其原本的數
E.g. 153=13+33+53=1+27+125

# Input

No input

# Output

輸出所有三位數 Armstrong 數

Solution
for i in range(100, 1000):
    sum = 0
    n = i
    sum += (n % 10)**3
    n //= 10
    sum += (n % 10)**3
    n //= 10
    sum += n**3
    if sum == i:
        print(sum, end=' ')


# P3

見輸出入說明

# Input

每次單筆輸入
輸入只有一行
輸入 n 保證為數字串

# Output

輸出一行
判斷輸入是否回文

  1. 若為真:輸出 [n] is a palindrome.
  2. 若為假:輸出 [n] is not a palindrome.
Solution
s = input()
flag = 1
for i in range(len(s)):
    if s[i] != s[len(s) - i - 1]:
        print(s, end=" is not a palindrome.")
        flag = 0
        break
if flag:
    print(s, end=" is a palindrome.")

# P4

見輸出入說明

# Input

每次單筆輸入
輸入一行字串 (包含空格字元)(筆者在作答時忽略這點,直接使用 cin,故這題應該是噴掉了,正解應該使用 getline)
並保證內容皆為合法字元

# Output

輸出字串中各個英文字母的數量
僅輸出字串中有的英文字母即可 沒有出現即不用輸出
大小寫均計算為同一字母

Solution
s = input()
ct = [0 for i in range(26)]

for i in range(len(s)):
    if ord(s[i]) >= 65 and ord(s[i]) <= 90:
        ct[ord(s[i]) - 65] += 1
    if ord(s[i]) >= 97 and ord(s[i]) <= 122:
        ct[ord(s[i]) - 97] += 1

for i in range(26):
    if ct[i]:
        print(chr(i + 65), ' or ', chr(i + 97), ' : ', ct[i], '個')