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: ifnot flag: print ('[%d] is not prime number'%n) flag = 1#将其标记为非质数 if x > n//x: #避免重复输出相同意义的因数算式 break if flag: print(' is',x,'*',n//x) ifnot flag: print('[%d] is prime number'%n)
输出样式
1 2 3 4 5 6 7 8 9 10 11 12
[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