如題 見主文
# 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
輸出一行
判斷輸入是否回文
- 若為真:輸出 [n] is a palindrome.
- 若為假:輸出 [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], '個')