num = int(input("请输入一个正整数,判断该数是否是质数:"))
while num <= 1 :
num = int(input("对不起,请输入大于1的正整数:"))
flag = True
for i in range(2, num // 2 + 1):
if num % i == 0:
flag = False
break
if flag == True:
print(f"{num}是一个质数")
else:
print(f"{num}不是一个质数")
三、1到100的两个素数相差为2,求这两个素数是多少(Flag和列表的案例)
第一种方法:
使用while循环
ls = []
for i in range(2, 101):
flag = True
for j in range(2, i):
if i % j == 0:
flag = False
break
if flag:
ls.append(i)
print(ls) #为什么这里不能用格式。
index = 0
while index < len(ls) - 1:
first = ls[index]
second = ls[index + 1]
if second - first == 2:
print(f"{first}和{second}之间是孪生素数")
index += 1
第二种方法:
使用for循环遍历
ls = []
for i in range(2,101):
flag = True
for j in range(2,i//2+1):
if i % j == 0:
flag = False
break
if flag :
ls.append(i)
print(ls)
for i in range(1,len(ls)):
if ls[i] - ls[i-1] == 2 :
print(f"100以内的数,两个素数互为孪生数的是{ls[i]}和{ls[i-1]}")
三、定一个正整数N,找出1到N(含)之间所有质数的总和。(利用函数去解决)
def xy(x):
if x == 1:
return False
for i in range(2, x // 2 + 1):
if x % i == 0:
return False
return True
n = int(input('请输入一个正整数N:'))
y = 0
for x in range(1, n + 1):
if xy(x):
y += x
print(f'1到N(含)之间所有质数的总和为:{y}')
四、给定一个数,求质数和。(利用循环去解决)
count2 =0
count = int(input("请输入一个正整数:"))
while count <=1 :
count = int(input("请输入一个大于1的正整数:"))
for i in range(1,count+1):
flag =True
for j in range(2,i //2 + 1):
if i % j == 0:
flag =False
break
if flag == True:
count2 +=i
print(f"和为{count2}")