1. 程式人生 > >騰訊2017秋招筆試程式設計題:素數對 [python]

騰訊2017秋招筆試程式設計題:素數對 [python]

'''
[程式設計題] 素數對
時間限制:1秒
空間限制:32768K
給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。
如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7)) 
輸入描述:
輸入包括一個整數n,(3 ≤ n < 1000)




輸出描述:
輸出對數


輸入例子1:
10


輸出例子1:
2
'''



'''
解題思路:簡單
  本道題只要你找出所有素數對(也就是兩個素數和等於輸入值),沒有讓你找出所有素數組合,所以難度大大降低。
  具體思路很簡單,遍歷從2開始到正整數一半的每一個整數,判斷該數是否為素數,如果是,
  接著判斷正整數減去該整數的差是否仍為素數,如果仍是,則累加器加1,最後輸出累加器的值即可。
'''


'''
程式碼執行結果:
答案正確:恭喜!您提交的程式通過了所有的測試用例

'''

from math import sqrt

def is_pri_num(num):
    temp = int(sqrt(num))
    for j in range(2, temp+1):
        if num % j == 0:
            return False
    return True
n = int(input())
d = n // 2

count = 0
for i in range(2, d+1):
    if is_pri_num(i):
        if is_pri_num(n-i):
            count += 1
print(count)