Bugün bir blogda bu probleme denk geldim ve uğraşmanın zevkli olacağını düşündüm. Gerçekten de zevkli bir uğraşı oldu. Logatritma kullanınca işler kolaylaştı, velhasıl formül çıkarıp çok daha kısasını yazmak mümkün oldu.


function mukemmelmi($sayi)
{
	$s=log($sayi)/log(2);
	$n=round($s/2);
	return ((pow(2, $n)*(pow(2, $n+1)-1))==$sayi);
}
Edit: Düzgün çalışması için formüle bir şart konması gerekiyor. Şu an vaktim yok ama kimse yapmazsa yarın yaparım.