题目:
python显示在2到1000之内素数,包括2和1000,每行8个
思路
主要是先通过取余的方法来判断是否为素数,然后输出这个素数并且使用end=""
(例如:print("%3s"%i,end=" "))输出就不会自动换行了
然后令n=0每次计算出素数时候就让n+=1,如果n%8==0那么就输出一个换行
代码
n = 0
for i in range(2,1001):
s = 0
for x in range(1,i+1):
if i % x == 0:
s += 1
if s == 2 :
print("%3s"%i,end=" ")
n +=1
if n % 8 == 0:
print("")
结果:
然后加给要求,要求是要输出个,十,百位是2的素数
思路
就是通过取余
对个位取余i % 10
对十位取余i // 10 % 10
对百位取余i // 100 % 10
代码
n = 0
for i in range(2,1001):
s = 0
for x in range(1,i+1):
if i % x == 0:
s += 1
if s == 2 and (i % 10==2 or i // 10 % 10==2 or i // 100 % 10==2):
print("%3s"%i,end=" ")
n +=1
if n % 8 == 0:
print("")
结果