C++分解质因数遇到的问题

C++质因数分解,为何只输出一个3?
45/15和15/5都会输出三,但执行结果只有一个

img

img

当某个i被整除时,下一个循环你要继续用这个i进行整除判断,不能加1,所以当a%i==0时,最后你要i--,这样下一个循环就继续用之前的i值进行判断了
另外你这么写的话,最后会多一个乘号的

#include <iostream>
using namespace std;
int main()
{
    int a,i,n,f=1;
    cout<<"请输入需要分解的正整数: ";
    cin>>a;
    for(i=2;i<=a;i++)
    {
        if(a%i==0)
        {
            if(f!=1)
                cout<<"*";
            f=0;
            cout<<i;
            a=a/i;
            i--;
        }
    }
    return 0;
}