[Python][Python 3] kalendarz gregoriański liczby doskonałe

ahgr1
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 4 gru 2014, o 19:35
Płeć: Mężczyzna
Lokalizacja: Polska

[Python][Python 3] kalendarz gregoriański liczby doskonałe

Post autor: ahgr1 »

Witam nie mogę sobie poradzić z takimi dwoma zadaniami :

1.Zakładając, że od początku naszej ery obowiązywał kalendarz gregoriański (co
nie jest prawdą), napisz funkcję, która wylicza ile dni minęło od początku ery,
do podanej daty.
Napisz program, który obliczy ile dni minęło od daty Twoich urodzin do dnia
dzisiejszego.
Przelicz to na sekundy (data urodzin 31.07.1995)

2.Niech \(\displaystyle{ \sigma \left( n \right)}\) oznacza sumę wszystkich dzielników liczby naturalnej
\(\displaystyle{ n}\) mniejszych od liczby \(\displaystyle{ n}\) (na przykład \(\displaystyle{ \sigma \left( 5 \right) = 1}\) oraz \(\displaystyle{ \sigma \left( 6 \right) = 1 + 2 + 3 = 6}\).
Liczbę \(\displaystyle{ n}\) nazywamy doskonała jeśli \(\displaystyle{ \sigma \left( n \right) = n}\).
Znajdź wszystkie liczby doskonałe mniejsze od \(\displaystyle{ 1000}\). Parę liczb \(\displaystyle{ \left( n,m \right)}\) nazywamy zaprzyjaźnioną jeśli \(\displaystyle{ \sigma \left( n \right) =m}\) oraz \(\displaystyle{ \sigma \left( m \right) =n}\).Wyznacz wszystkie zaprzyjaźnione pary liczb mniejszych niż \(\displaystyle{ 1000}\).
Ostatnio zmieniony 4 gru 2014, o 20:48 przez Afish, łącznie zmieniany 1 raz.
Powód: Nieczytelny zapis - brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
Awatar użytkownika
sebnorth
Użytkownik
Użytkownik
Posty: 635
Rejestracja: 12 sty 2011, o 16:27
Płeć: Mężczyzna
Lokalizacja: Puck i Trójmiasto
Pomógł: 201 razy

[Python][Python 3] kalendarz gregoriański liczby doskonałe

Post autor: sebnorth »

2.

Kod: Zaznacz cały

def sumadzielinkow(n):
    suma = 0
    for i in range(1, n//2+1):
        if n % i == 0:
            suma += i
    return suma

def doskonala(n):
    return sumadzielinkow(n) == n


def doskonala1000():
    lista = [n for n in range(1, 1000) if doskonala(n)]
    return lista

print doskonala1000()
# [6, 28, 496]

def zaprzyjaznione():
	lista = [(a,b) for a in range(1,1000) for b in range(1,1000) if (sumadzielinkow(a) == b and sumadzielinkow(b) == a)]
	print lista 

print zaprzyjaznione()
# [(6, 6), (28, 28), (220, 284), (284, 220), (496, 496)]
lukequaint
Użytkownik
Użytkownik
Posty: 219
Rejestracja: 5 maja 2010, o 18:27
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz
Pomógł: 75 razy

[Python][Python 3] kalendarz gregoriański liczby doskonałe

Post autor: lukequaint »

Do pierwszego, zerknij tutaj: 373358.htm
ODPOWIEDZ