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}\).
[Python][Python 3] kalendarz gregoriański liczby doskonałe
[Python][Python 3] kalendarz gregoriański liczby doskonałe
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 .
Powód: Nieczytelny zapis - brak LaTeX-a. Proszę zapoznaj się z instrukcją: http://matematyka.pl/latex.htm .
- sebnorth
- 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
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)]
-
- 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