والا گوگل چیزه خوبه برای این کار چندین الگوریتم وجود داره یکیش اینه :

#include <iostream.h>

void PrimeFactors (int );


int main()
{
int n = 0;
cout<<"\t\tWelcome to Prime Factors program\n\n";
cout<<"Enter the number : ";
cin>>n;
cout<<"\n\n";
PrimeFactors(n);

return 0;
}

void PrimeFactors (int n)
{

int count = 0;
int temp = 0;


for ( int i = 1 ; i <= n ; i++ )
{

int j = i - 1;

while ( j > 1 )
{
if ( i % j == 0 ) //Is PRIME
break;
else
j--;
}

if ( j == 1 )
{
if ( n % i == 0 )
{
cout<<"\n"<<i; //PRIME factor

if ( i > temp )
{ temp = i;
count++;
}
}
}

}

cout<<"\n\nNumber of prime factors of "<<n<<" : "<<count<<"\n\n";
cout<<"Greatest prime factor is "<<temp<<"\n\n";
}}


ولی در کل باید بندازیش داخل یک حلقه که از 2 شروع بشه اگه عدد اول بود که تقسیم و چاپ اگه نبود باید بریم مرحله بعدی . بیهترین کار اینه که یک تابع برای عدد اول تعریف کنی یا یک آرایه که داخلش اعداد اول بین 0 تا 9 باشه
البته این برای تجزیه یک عدد به عوامل اول درسته که فکر کنم منظور شما همین باشه