Descompunerea in factori primi

Acest program va afisa factorii primi si puterile acestora

#include <iostream>

using namespace std;

int main()
{
    int n,d,p;
    cout<<"n=";cin>>n;
    d=2;
    while(n!=1)
    {
        p=0;
        while(n%d==0)
        {
            p=p+1;
            n=n/d;
        }
        if(p!=0)cout<<d<<'^'<<p<<',';
        d=d+1;
    }
    return 0;
}