Skip to content

Python 507 質數

Python TQC

題目說明:

請撰寫一程式,讓使用者輸入一個整數x,並將x傳遞給名為compute()的函式,此函式將回傳x是否為質數(Prime number)的布林值,接著再將判斷結果輸出。如輸入值為質數顯示【Prime】,否則顯示【Not Prime】。

範例輸入1
3

範例輸出1

Prime

範例輸入2

6

範例輸出2

Not Prime

範例輸入3

1

範例輸出3

Not Prime

範例輸入4

0

範例輸出4

Not Prime

範例輸入5

-5

範例輸出5

Not Prime

題目解析

問題分析:

這個問題要求我們寫一個程式,接收一個整數 \(x\) 作為參數,然後將這個參數傳遞給名為 compute() 的函式。函式 compute() 的功能是判斷傳入的整數 \(x\) 是否為質數(Prime number),如果是,返回 True,否則返回 False。然後根據函式的回傳值,輸出 “Prime” 或 “Not Prime”。

解題思路:

  1. 定義一個函式 compute(n)
  2. compute() 函式中,首先檢查特殊情況:如果傳入的整數 \(n\) 小於 2,則直接返回 False,因為質數必須大於 1。
  3. 如果 \(n\) 不等於 2,則遍歷範圍從 2 到 \(n-1\) 的數字,如果存在任何一個能整除 \(n\) 的數字,則 \(n\) 不是質數,返回 False
  4. 如果遍歷完成都沒有找到可以整除 \(n\) 的數字,則 \(n\) 是質數,返回 True
  5. 在主程式中,接收使用者輸入的整數 \(x\)
  6. 將接收到的整數 \(x\) 傳遞給 compute() 函式。
  7. 根據 compute() 函式的回傳值,輸出 “Prime” 或 “Not Prime”。

思考方向:

  1. 確保對質數的定義和判斷方法有清楚的理解。
  2. 考慮處理輸入的資料型態,以及特殊情況(如負數、0、1)的處理。
  3. 確保函式 compute() 的邏輯正確,能夠準確判斷輸入的整數是否為質數。

Solution

def compute(n):
  if n < 2:
    return False
  elif(n!=2):
    for i in range(2, n):
      if(n % i == 0):
        return False

    return True
  else:
    return True


a = eval(input())
if((a == 0 )| (a == 1)):
    print("Not Prime")
elif(compute(a)):
    print("Prime")
else:
    print("Not Prime")

Tip

可以將比2小的數都設為Not Prime


Last update : 13 novembre 2024
Created : 13 novembre 2024

Comments

Comments