#来源于期末作业#
我们先来了解一下:
素数也被称为质数。一个大于1的正整数,假如除了1和它本身以外,不能被其他正整数整除,就叫素数。如2,3,5,7,11,13,17......素数【质数】的性质【1】质数p的约数只有两个:1和P。
素数也被称为质数。一个大于1的正整数,假如除了1和它本身以外,不能被其他正整数整除,就叫素数。如2,3,5,7,11,13,17...
素数【质数】的性质【1】质数P的约数只有两个:1和P。
题目一:请找出1-1000中的素数
分析:1.遍历出2-1000的数?
? ? ? ? ? ? 2.使用一个变量num承接
? ? ? ? ? ? ?3.在对该变量进行从(2,根号num+1)进行遍历,进行整除,如果找到一个因子。
代码操作:
anynumber = int(input()) #接受想要遍历的数
all_prime = [1] # 存储所有素数
for num in range(2, anynumber+1): # 从 2 开始,因为 1 不是素数
for i in range(2, int(num ** 0.5) + 1): # 只需要检查到 num 的平方根即可
if num % i == 0: # 如果找到一个因子
break # 不需要再检查其他的数,所以直接跳出循环
else: # 如果没有找到因子
all_prime.append(num) # 那么 num 就是素数
print(all_prime)
"""
先加入最特殊的素数1,随后将2-1001的中的素数加入进去。
"""
最末尾的数可以改变。
题目二:请找出1-1000的中的非素数。
???????????1.遍历出2-1000的数?
? ? ? ? ? ? 2.使用一个变量num承接
? ? ? ? ? ? ?3.在对该变量进行从(2,根号num+1)进行遍历,进行整除,如果找到一个因子,那么,这个数就是非素数,加入到列表中。
代码操作:
anynumber = map(int,input())#接收想要遍历的数
all_non_prime = [] #创建一个空列表
for num in range(2,anynumber+1): #一已经是素数,所以不用遍历
for i in range(2,int(num **0.5)+1):
if num % i == 0: #若有一个因子,则为非素数
all_non_prime.append(num)
break
print(all_non_prime)
题目三:判断一个数是否为素数的
基本上和以上的思想差不多,也是从2-根号n 整除验证是否为素数。
def is_prime(n):
if n <= 1:
return False
for i in range(2,int(n **0.5)+1):
if n % i == 0:
return False
return True
以上就为我目前见到的素数期末题目,如果您遇到新的题目可以在评论区讨论,谢谢。