Python programlamada fonksiyon çalışma notu olarak düşünebilirsiniz. Mükemmel sayıyı bulmak kısa bir işlem ancak bunu bölüp parçalasaydık fonksiyonlarla yapsaydık en uzun nasıl yapardık aşağıda yer almaktadır.
Girilen sayının mükemmel sayı olup olmadığını python fonksiyonlar aracılığı ile bulalım önce.
#-------------------------------------------#
#Fonksiyon Tanımlama
def tambolen(a):
liste=[]
for i in range(1,a):
if a%i==0:
liste.append(i)
else:
continue
if len(liste)>=1:
return liste
else:
print("tam boleni yok")
def mukemmelmi(listem):
top=0
for i in range(len(listem)):
top+=listem[i]
if top==sayi:
print("mükemmel")
else:
print("mükemmel değil")
#-------------------------------------------#
# Program Kısmı
sayi=int(input("Sayı gir..: "))
mukemmelmi(tambolen(sayi))
Şimdi de 1-1000 aralığındaki mükemmel sayıları yine aynı şekilde fonksiyonlara parçalayarak yazalım. Bir de süre tutalım. Buradaki sayıları 100000 vs. yapıp ne derece hızlı işlemcileriniz var test edebilirsiniz.
#-------------------------------------------#
#Fonksiyon Tanımlama
def tambolen(a):
liste=[]
for i in range(1,a):
if a%i==0:
liste.append(i)
if len(liste)>1:
return liste
def mukemmelmi(listem):
top=0
for b in range(len(listem)):
top+=listem[b]
if top==t:
mukliste.append(t)
#-------------------------------------------#
import time
basla=time.time()
mukliste=[]
for t in range(1,1000):
liste=tambolen(t)
if liste!=None:
mukemmelmi(liste)
print(mukliste)
bitir=time.time()
print(round(bitir-basla,2), "saniye")