【发布时间】:2012-02-28 16:04:44
【问题描述】:
编辑
我想得到自然数N的除数。
for (int i=1;i<n/2;i++)
if(n%i==0)
print(i);
我们如何比较小于 n/2 的数字? 我想在不到 n/2 步内找到所有因素
【问题讨论】:
-
我删除了 Mathematica 标签,我认为它在这里不适用。
-
对于初学者来说应该是 n%i==0。
-
只是对下面谁做 i
-
伙计们...如果您正在寻找所有因素,那么使用 sqrt(n) 是不正确的。
-
@John 请注意,在我的回答中,我将上升到
sqrt(n),但是当我找到一个因素时会同时打印i和n/i。因此,它们都被找到了。 (检查i==sqrt(n)以避免将完美平方的平方根打印两次。)
标签: c algorithm math complexity-theory