找错误:求除了1和n本身外,所有n的因子之和

这段C语言运行答案永远是2的,不知道错哪里了
#include <stdio.h>
main()
{ int n,sum;
scanf("%d",&n);
sum=fun(n);
printf("sum=%d\n",sum);
}
int fun(int n)
{ int i,m;
i=2;m=0;
while(i==n)
{ if(n%i==0)
m+=i;
i++;
}
return m;
}

为何是while(i==n)呢?如果输入的n不是2,这代码啥也不干啊。应该是while(i!=n)吧