L1-028判断素数(10分)python
本题的⽬标很简单,就是判断⼀个给定的正整数是否素数。
输⼊格式:
输⼊在第⼀⾏给出⼀个正整数N(≤ 10),随后N⾏,每⾏给出⼀个⼩于2
31
的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在⼀⾏中输出Yes,否则输出No。
输⼊样例:
2
11
111
输出样例:
Yes
c++判断素数No
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())
a.append(x(m))
for i in a:
if i == 1:
print('Yes')
else:
print('No')
这⾥分⼩于等于1 和 从2起的数字,分开进⾏判断,使⽤ math.sqrt(n) 来减少循环
因为⼀个数的因数是成对出现的,其中⼀个因数在开⽅后的前⾯⼀个在开⽅后的后⾯,所以只需判断它前⾯的数就可以了,如果前⾯都没有,那么它后⾯更不会有.这样就可以减少循环次数.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论