2016-04-07 27 views
-2

Bir kod üzerinde çalışıyorum ve şu ana kadar bu kadarı var. Bu noktada sıkışıp kaldım. Herhangi bir yardım büyük takdir edilecektir. Boolean değerli bir fonksiyonun (n), Boolean değerinin True veya False değerini hesaplayan ve döndüren program, n parametresinin değerinin sırasıyla mükemmel bir sayı olup olmadığına göre değil.Python'da mükemmel numaralar

def main(): 
    numPerfects = eval(input("How many perfect numbers do you want to find?")) 
    perfectsFound=0 
    possiblePerfect=1 
    while(perfectsFound < numPerfects): 
     if (perfect(possiblePerfect)): 
      perfectsFound += 1 
      print ("{0:0}}.{1:0}".format(perfectsFound, possiblePerfect)) 
     #end if 
    #end while 
#end main 

main() 
+5

Bu soruyu off-topic olarak kapatmak için oylama yapıyorum çünkü bu ne kod yazma ne de öğretici bir hizmettir – jonrsharpe

cevap

0

bir "numara" bölmek "olabilir" tüm değerler bu "numara" nin ikizi kadar eklerseniz kontrol ederek bunu yapabilirsiniz:

def isperfect(n): 
    factors = [1]+[i for i in range(2,n+1) if n%i == 0] 
    if sum(factors) == 2*n: 
     return True 
    return False 

for i in range(1000): 
    if isperfect(i): 
     print(i) 

, sonucudur:

6 
28 
496 
+0

Kodu çalıştırdığımda bu hatayı aldım. Bunun ne anlama geldiğini biliyor musun? Traceback (son En son çağrı): isperfect içinde Dosya "/Users/kalebdill/Documents/Untitled.py", hat 11,() TypeError: 1 Gerekli konumsal bağımsız değişkeni eksik isperfect(): 'n' – Chris

+0

Evet, ancak bu kodu bu koddan çalıştırmamışsınızdır. 'Isperfect()' çağrısında argüman vermediğini söylüyor. Ona bir sayı vermelisin. Örneğin: 'isperfect (10)'. – armatita

+0

@Chris Bu cevap sorununuzu çözmenize yardımcı olsaydı, bunu kabul etmelisiniz. – armatita

İlgili konular