分解质因数最后一个输出不对

我进行调试了 但是后面还是没发现问题
就是为什么最后一个因数输出不了

img

img

供参考:

#include <stdio.h>
int main()
{
    int n, k = 0;
    scanf("%d", &n);
    printf("%d=", n);
    while (n != 1)
    {
        for (int i = 2; i <= n; i++)//修改 for (int i = 2; i < n; i++)
        {
            if (n % i == 0)
            {
                if (n == i){
                    printf("%d", i);
                    n /= i;
                    break;
                }
                else{  //修改
                    printf("%d*", i);//修改 printf("% d*", i);
                    n /= i;
                    break;
                }
            }
        }
    }
    return 0;
}

else if里面的printf语句中% d需要改成%d,

for循环的条件应该是 i <= n
不然i == n的时候进不了循环,最后一个输出就出不来