一道求因子之和的问题
输入一个非质数n,除1和它本身之外,所有的因子之和,下面是我做的,当我输入18时,运行的结果怎么也是9
#include"stdio.h"
int fun(int n)
{
int sum=0,i=2;
while(i<n/2)
{
while(n%i==0)
{
sum=sum+i;
n=n/i;}
i++;
}
sum=sum+n;
return sum;
}
void main()
{
int n=18;
fun(n);
printf("%d",fun(n));
}