İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

php ile mükemmel sayı bulmak

U

uzaymerkezicom

Misafir
angelo :) saol bak yardım etmeye başladın. Demek ki eksi rep işe yaramış.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Hortlattığın iyi olmuş bence, bu forumda paylaşmak yok yardım yok gibi garip garip şeyler yazan arkadaşlar, paylaşım ve yardım olunca neler olduğunu görmesi açısından tarihi örnek teşkil etmiş. :) Nitekim soruyu soran arkadaş foruma en son 4 sene önce girmiş. Biz hala burdayız.
 

Gookhan

0
İyinet Üyesi
Katılım
15 Ağustos 2005
Mesajlar
1,040
Reaction score
6
Konum
Ardeşen
Ben şimdi senin programı MATLAB için düzenliyorum.
Çözmesi bayağı kasıyor, wikipedia'daki tanımda yer alan havuz sayılarını kullanarak çözdüren bir program yazmaya çalışacağım.
 

Gookhan

0
İyinet Üyesi
Katılım
15 Ağustos 2005
Mesajlar
1,040
Reaction score
6
Konum
Ardeşen
Efenim bu program da benden olsun. MATLAB içindir. İlk döngüdeki bitiş değerini arttırarak daha geniş aralıktaki mükemmel sayıları bulabilirsiniz. Yalnız sayıyı fazla arttırmayın. Çünkü bilgisayarınız saatlerce sürecek bir işleme başlamış olabilir.

Kod:
clc
clear all
% Kendisi hariç pozitif tam bölenlerinin toplamı kendisine eşit olan
% sayılara MÜKEMMEL SAYI denir.Bu tanımdan yola çıkarak, mükemmel bir sayı 
% aynı zamanda bütün pozitif tam bölenlerinin toplamının yarısına eşittir.

% iyinet forumlarından Angelo'ya teşekkürler.
% MATLAB uyarlaması MrPcKoPaT - www.gokhanhizal.com

fprintf('İşte mükemmel sayılarımız: \n')
for i=1:10000;

m=(i-1);
z=0;

    for k=1:m;
         b=rem(i,k);
         
         if b==0
             z=(z+k);
         end
     end
    
    if z==i
        fprintf('%g \n', i)
    end
end
 

webadresim

0
İyinet Üyesi
Katılım
13 Mayıs 2011
Mesajlar
430
Reaction score
1
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.


PHP:
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.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst