Following code snippet can be used to programmaticaly find administrator of a SharePoint Site Collection:

SPSite oSPSite = new SPSite("http://servername/sites/sitecollectionname");
SPWeb oSPWeb = oSPSite.OpenWeb();
SPUserCollection oUserCollection = oSPWeb.AllUsers;
foreach (SPUser oSPUser in oUserCollection)
{ 
if (oSPUser.IsSiteAdmin == true )
{
string email = oSPUser.Email;
string userid = oSPUser.ID.ToString();
}
}