# coding:utf-8
import math
for i in range(100, 300 + 1):
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
n = i
print(j)
else:
print(n)
- 出结果的时候,如果下一个是素数,就会重复输出上一个合数,不知道怎么优化,希望不要重复输出
# coding:utf-8
import math
for i in range(100, 300 + 1):
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
n = i
print(j)
else:
print(n)
要求合数的因数,就不能按照判断素数的方法简化循环次数了
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
for i in range(100, 300 + 1):
lst = []
for j in range(2, i//2+1):
if i % j == 0:
lst.append(j)
if len(lst)>0:
print(i, lst)