برنامه عدد تام در c++

برنامه ای بنویسید که یک عدد را از ورودی دریافت کند و تشخیص دهد آیا این عدد تام است یا خیر؟


void main()

{

int a,i,r=0,sum=0;

cin>>a;

for(i=1;i<=a/2;i++)

{

   if(!(a%i)) sum+=i;

}

if ( a==sum) cout<<"Tam ast";

}

عدد تام یا عدد کامل عددی است که حاصل جمع مقسوم علیه های آن عدد با خود آن عدد برابر باشد.مثلا عدد 6 یک عدد تام است چون حاصل 1+2+3 که مقسوم علیه های این عدد هستند برابر 6 است.