Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Liczby zaprzyjaźnione to para różnych liczb całkowitych dodatnich takich, że suma
- dzielników właściwych każdej z tych liczb równa się drugiej liczbie. Pierwszą parę
- takich liczb podał Pitagoras – to 220 i 284.
- 220 = 1+2+4+71+142 (dzielniki 284)
- 284 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 (dzielniki 220)
- Zdefiniuj funkcję logiczną zaprzy(a, b) , która w wyniku wyświetli True , jeśli para
- liczb a i b podanych jako parametry będzie zaprzyjaźniona, lub False – jeśli nie będzie.
- '''
- # poniżej funkcje pomocnicze
- ###################
- def dzielniki(liczba):
- '''
- liczba = liczba całkowita > 0
- zwraca listę liczbb, dzielników: [ 1,2,3,4,...]
- '''
- if liczba==0:
- return None
- lista = []
- for i in range(1,liczba):
- if liczba % i == 0:
- lista.append(i)
- return lista
- #######################
- def suma_dzielnikow(lista):
- '''
- lista = lista dzielników zwracana przez funkcję dzielniki()
- zwraca sumę jako liczbe całkowitą
- '''
- suma = 0
- for kazdy in lista:
- suma += kazdy
- return suma
- #################
- def zaprzy(a, b):
- '''
- a,b = liczby całkowite > 0
- zwraca True jeśli zaprzyjaźnione, False jeśli nie
- (wewnątrz wypisuje na ekran dodatkowe informacje)
- '''
- print('------------------------------------------------------------')
- print('Sprawdzamy zaprzyjaźnione liczby: ' + str(a) + ' i ' + str(b))
- lista_dzielnikow_a = dzielniki(a)
- lista_dzielnikow_b = dzielniki(b)
- suma_dzielnikow_a = suma_dzielnikow(lista_dzielnikow_a)
- suma_dzielnikow_b = suma_dzielnikow(lista_dzielnikow_b)
- print('Lista dzielników dla '+str(a) + ': ' + str(lista_dzielnikow_a) )
- print('Lista dzielników dla '+str(b) + ': '+ str(lista_dzielnikow_b) )
- print('Suma dzielników ' + str(a) + ': ' + str(suma_dzielnikow_a) )
- print('Suma dzielników ' + str(b) + ': ' + str(suma_dzielnikow_b) )
- if suma_dzielnikow_a == b and suma_dzielnikow_b == a:
- print('OK - ' + str(a) + ' i ' +str(b) + ' to są liczby zaprzyjaźnione.')
- return True
- return False
- ####################################
- # tu własciwy skrypt
- wynik = zaprzy(220,284)
- print(str(wynik))
- print(str(zaprzy(210,23)))
Advertisement
Add Comment
Please, Sign In to add comment