擅长:python、mysql、java
<p>很天真的你可以测试n(10)以内的每一个数字</p>
<pre><code>n = 10
results = []
for i in range(1,n+1):
if n % i == 0:
results.append(i)
print(results)
</code></pre>
<p>或者作为列表理解:</p>
^{pr2}$
<p>在实际测试中,您只需要使用sqrt的生成器:</p>
<pre><code>def divisor(n):
a = 1
l = n ** 0.5
while a <= l:
if n % a == 0:
if a == n//a:
yield a,
else:
yield a, n//a
a += 1
print([x for a in divisor(10) for x in a])
print(sorted(x for a in divisor(10) for x in a)) # Sorted
</code></pre>