return没能跳出循环(递归求一个整数的质因子)

问题遇到的现象和发生背景

return没能跳出循环(递归求一个整数的质因子)

用代码块功能插入代码,请勿粘贴截图

void yin(int n)
{
int i;
for(i=2;i
{
if(n%i==0)
{
printf("%d*",i);
yin(n/i);
}
}
printf("%d",n);
return;
}

int main()
{
int n;
scanf("%d",&n);
yin(n);
return 0;
}

运行结果及报错内容

return没能跳出循环,在输出所有质因子后又再次进入函数。

既然用了递归,就不应该用循环

调试时显示执行到retun后又从函数开始执行了