---
# System prepended metadata

title: 第六堂課練習-題目練習
tags: [Python]

---

###### tags: `Python`
# 第六堂課練習-題目練習

## 練習一 382 - Perfection
:::success
題目:382 - Perfection

1994年"數論(Number Theory)"一篇文章的作者，同時也是微軟(Microsoft)工程師的Encarta指出：
「假設 a, b, c 為三整數，且 a = bc 成立， a 被稱為 b 或 c 的倍數，而 b 或 c 被稱為 a 的除數或
因數。假設 c 不為正1或負1，則 b 可被稱為 "a的洽當因數(proper divisor of a) "。包含零的偶數為
2的倍數，例如：-4, 0, 2, 10...等，奇數為非偶數的整數，例如：-5, 1, 3, 9...等。一個 "完全數
(perfect number)" 為一正整數，它等於它的所有正的洽當因數(proper divisor)的和，例如6即為完
全數，它等於 1 + 2 + 3，而28 = 1 + 2 + 4 + 7 + 14 亦為完全數。一正整數若非完全數，則稱它
為"缺陷數(deficient)"或 "充裕數(abundant)" ，端看該數的所有正的洽當因數的和是否小於或大於
該數本身。因此， 9 的洽當因數為 1, 3，故9為"缺陷數"，12為 "充裕數" 因為它的洽當因數等於 1,
2, 3, 4, 6」
:::

```python=
n=int(input('PERFECTION OUTPUT:'))

while n >0 or n<0:  #while迴圈 使用者輸入的數不為0會重複執行; 為0則跳出迴圈
  x=0 #總和計算
  for i in range (1,n):  #從1~n 開始遞增+1 找因數 (從1到n-1停止)
    if n%i==0:   #判斷 n如果被i整除 餘數為0, 則判斷為因數
      x=x+i # 另一個寫法x+=i <<<< 將判斷為因數的數加總起來
      
  if x == n: #總和 等於 使用者輸入的數 為完美數PERFECT
    print("PERFECT")

  elif x>n: #總和 大於 使用者輸入的數 為充裕數ABUNDANT
    print("ABUNDANT")

  else:    #其他>>> 總和 小於 使用者輸入的數 為缺陷數DEFICIENT
    print("DEFICIENT")
  n=int(input(''))

print("END OF OUTPUT")
```

:::spoiler 輸出結果
PERFECTION OUTPUT
15 DEFICIENT
28 PERFECT
6 PERFECT
56 ABUNDANT
60000 ABUNDANT
22 DEFICIENT
496 PERFECT
END OF OUTPUT
:::


## 練習二 10783-Odd Sum
:::success
題目: 10783 Odd Sum

Given a range [a; b], you are to find the summation of all the odd integers in this range. For example,
the summation of all the odd integers in the range [3; 9] is 3 + 5 + 7 + 9 = 24. (只加總奇數)

<font color="red">Sample Input </font>
2
1
5
3
5
<font color="red">Sample Output</font>
Case 1: 9
Case 2: 8
:::

```python=
time=int(input('case times:')) #讓使用者輸入要做case的次數

for j in range(time): #用for迴圈去依照 使用者case的次數去執行(從0開始)
  x = int(input('Start:')) #讓使用者輸入開始的數
  y = int(input('End:'))   #讓使用者輸入停止的數
  z = 0 #奇數加總
  for i in range (x,y+1): #for迴圈判斷從 使用者輸入開始~停止的數
      if(i % 2 == 1):  #如果 除2餘數為1 即為奇數
          z+=i   #奇數 做加總
  print('Case %d:%d'%(j+1,z)) #輸出Case 的加總結果

```

:::spoiler 執行結果
case times:2
Start:1
End:5
Case 1:9
Start:3
End:5
Case 2:8
:::