騰訊2017秋招筆試程式設計題:素數對 [python]
阿新 • • 發佈:2019-02-19
'''
[程式設計題] 素數對
時間限制:1秒
空間限制:32768K
給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。
如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7))
輸入描述:
輸入包括一個整數n,(3 ≤ n < 1000)
輸出描述:
輸出對數
輸入例子1:
10
輸出例子1:
2
'''
'''
解題思路:簡單
本道題只要你找出所有素數對(也就是兩個素數和等於輸入值),沒有讓你找出所有素數組合,所以難度大大降低。
具體思路很簡單,遍歷從2開始到正整數一半的每一個整數,判斷該數是否為素數,如果是,
接著判斷正整數減去該整數的差是否仍為素數,如果仍是,則累加器加1,最後輸出累加器的值即可。
'''
'''
程式碼執行結果:
答案正確:恭喜!您提交的程式通過了所有的測試用例
[程式設計題] 素數對
時間限制: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)