本題的目標很簡單,就是判斷乙個給定的正整數是否素數。
輸入格式:
輸入在第一行給出乙個正整數n(≤ 10),隨後n行,每行給出乙個小於2
31 的需要判斷的正整數。
輸出格式:
對每個需要判斷的正整數,如果它是素數,則在一行中輸出yes,否則輸出no。
輸入樣例:211
111輸出樣例:
yesno
import math
def x(n):
flag=1
for i in range(2,int(math.sqrt(n))+1):
if n%i==0:
flag=0
if n<=1:
flag=0
return flag
n=int(input())
a=for i in range(n):
m=int(input())
for i in a:
if i == 1:
print('yes')
else:
print('no')
這裡分小於等於1 和 從2起的數字,分開進行判斷,使用 math.sqrt(n) 來減少迴圈
因為乙個數的因數是成對出現的,其中乙個因數在開方後的前面乙個在開方後的後面,所以只需判斷它前面的數就可以了,如果前面都沒有,那麼它後面更不會有.這樣就可以減少迴圈次數.
L1 028 判斷素數 10 分
單位 浙江大學 時間限制 400 ms 記憶體限制 64 mb 長度限制 16 kb 本題的目標很簡單,就是判斷乙個給定的正整數是否素數。輸入在第一行給出乙個正整數n 10 隨後n行,每行給出乙個小於2 31 的需要判斷的正整數。對每個需要判斷的正整數,如果它是素數,則在一行中輸出yes,否則輸出n...
L1 028 判斷素數 10分
本題的目標很簡單,就是判斷乙個給定的正整數是否素數。輸入在第一行給出乙個正整數n 10 隨後n行,每行給出乙個小於231的需要判斷的正整數。對每個需要判斷的正整數,如果它是素數,則在一行中輸出yes,否則輸出no。2 11111yes no用試除法即可,資料過大不可以用素數篩 include def...
L1 028 判斷素數 10 分
判斷素數 素數,有時候我們也稱其為 質數 指的是在大於數字1的前提下,除了可以被數字1,以及該數字本身整除之外,再也不能夠被其他任何自然數整除的自然數。輸入格式 輸入在第一行給出乙個正整數n 10 隨後n行,每行給出乙個小於2 31 的需要判斷的正整數。輸出格式 對每個需要判斷的正整數,如果它是素數...