C++求整数所有的质因子及其数量,想问下我这个程序错在哪里了 输出的不对T_T

img


C++我写出来的程序如图,我是想求所有质数因子并输出,但是这个程序,我输入84,无法输出最大的质因子7,而且还多出来了4.6这种不是质数的因子,可以问问是为什么,哪里错了吗?(提前谢谢愿意解答的编程人!

a=0写在while循环外面
还有设置一个中间变量mid=n,之后的n/=i改成mid/=i