forked from fenyx-it-academy/Class4-PythonModule-Week3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPerfectNumbers.py
More file actions
18 lines (12 loc) · 1.02 KB
/
PerfectNumbers.py
File metadata and controls
18 lines (12 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from functools import reduce
print ('0 ile hangi sayi arasindaki mukemmel sayilarin toplamini istiyorsunuz?')
sayi= (input ("Sayiyi giriniz :"))
n =int(sayi) # ilk toplam 'sum' ile, ikinci toplam 'reduce' fonksiyonu ile calisiyor
print ('Mukemmel Sayilar', list(filter(lambda n: True if sum(y for y in range (1,n) if n%y==0)==n else False, range(2, n))))
print ('Toplamlari :', sum(list(filter(lambda n: True if sum(y for y in range (1,n) if n%y==0)==n else False, range(2, n)))))
print ('Toplamlari :', reduce (lambda a,b: a+b, list(filter(lambda n: True if sum(y for y in range (1,n) if n%y==0)==n else False, range(2, n)))))
"""" filtreleme ile listeden her bir sayi icin,
kalansiz bolenlerinin toplami sayinin kendisine esit olanlari ayiriyoruz,
iki if calisyor, ilki kalansiz bolenleri seciyor, ikincisi, her bir sayi icin secilen bolenlerin toplaminin sayinin kendisine esit olanlar ayriliyor
iki range var birisi verilen sayiya kadar 'n',
digeri bolen icin onu da 1'den verilen sayiya kadar, 'y'"""