for n in range(2,10): #2~9按顺序计算
flag = 0 #标记
for x in range(2,int(n/2)+1):
#用int()强制转换格式,以匹配range函数,计算质数只需算前一半就可以了
if n%x == 0:
if not flag:
print ('[%d] is not prime number'%n)
flag = 1 #将其标记为非质数
if x > n//x: #避免重复输出相同意义的因数算式
break
if flag:
print(' is',x,'*',n//x)
if not flag:
print('[%d] is prime number'%n)
输出样式
[2] is prime number
[3] is prime number
[4] is not prime number
is 2 * 2
[5] is prime number
[6] is not prime number
is 2 * 3
[7] is prime number
[8] is not prime number
is 2 * 4
[9] is not prime number
is 3 * 3