Prodotto di Potenze di numeri primi

#include<iostream>

unsigned long n,d;
int c;
using namespace std;
int main()
{

  cout << "Inserisci un Numero intero ";
  cin >> n;

  d=2;

  while (n>1) {
    while (n % d!=0) d++;
    n/=d;
    c=1;
    while (n % d==0) {
       n/=d;
       c++;
    }
    cout << "\nUn numero primo e' "<< d << " ed ha potenza "<< c << endl;
  }
}