题解 | #筛选法求素数#
筛选法求素数
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
import sys
'''
凡是非素数,除1和自身外,都不能被2、3、5和7整除
题意是:
第一行输出2~n之间的素数
第二行输出非素数的个数
'''
basic = [2, 3, 5, 7]
for line in sys.stdin:
a = int(line)
primes = []
for i in range(2, a + 1):
if i in basic:
primes.append(i)
else:
isPrime = True
for j in basic:
if i % j == 0:
isPrime = False
break
if isPrime:
primes.append(i)
for s in primes:
print(s, end=" ")
print(f"\n{a - len(primes) - 1}")
