def isprime(number):
# 第一个细节:减少算法复杂的,sqrt(number) 另外记得+1 ,range的规则为左括号取,右括号数不取
for i in range(2, int(number ** 0.5 + 1)):
if number % i == 0:
return False
break
# 在循环外else 不在循环体内部
else:
return True
n = eval(input())
count = 0
if n <= 3:
print("0", end="")
else:
# 第二个细节,直接间隔取数
for i in range(3, n + 1, 2):
a = 0
b = 0
if isprime(i):
a = 1
# 第三个细节 如果不判断这一句 可能会出现多判断一次
if i + 2 <= n:
if isprime(i + 2):
b = 1
if a + b == 2:
count += 1
print(count)
1007 素数对猜想
最新推荐文章于 2024-07-28 15:46:11 发布