mcm tra n numeri in C++

#include<iostream>

using namespace std;
/*data la relazione tra mcm e MCD calcolare mcm tra n numeri immessi dall'utente*/

int main()
{

/*dichiaro una variabile dove mettere il numero chiesto all'utente*/
int a,b,mcm;

try
{

/*chiedo due numeri tramite lo stream cin>>, controllando le eccezzioni che siano diversi da zero*/
cin>>a;
if(a==0) throw exception();
int tmpa=a;
cin>>b;
if(b==0) throw exception();
int tmpb=b;

/*caso in cui l'utente non immetta a o b*/
mcm=a ? a: b;

/*finche non immetto qualcosa di diverso da un numero continua a chiedere*/
while(cin)
{
	
	/*calcolo MCD*/
	while(tmpa!=tmpb)
	{
	if(tmpa>tmpb)
    tmpa=tmpa-tmpb;	
	else
	tmpb=tmpb-tmpa;
	
	
	}
	
	/*dal MCD calcolo mcm*/
	mcm=a*b/tmpa;
    
    /*chiedo un terzo numero*/
    cin>>a;
    if(a==0) throw exception();
    tmpa=a;
    
    b=mcm;
    tmpb=b;
}
    printf("mcm tra i numeri immessi \212: %d",mcm);
    
    
}catch(exception e){
	cout<<"Errore qualche numero \212 zero\n";
}

	


}