Zastosowanie funkcji

Podczas lekcji przedstawimy podstawowe zastosowanie funkcji w języku Python.

Funkcja τ - funkcja zwracająca liczbę dzielników danej liczby

Omówmy teraz zapisaną funkcję poniżej. Po pierwsze musimy zdefiniować funkcję i nadać jej nazwę, w naszym przypadku nazwaliśmy ją "tau". Następnie dodajemy do niej jeden argument – liczbę, której ilość dzielników zwrócimy. W naszym przypadku "x". Tworzymy zmienną “liczba_dzielników”, która będzie zliczać kolejne dzielniki liczby, dzięki czemu na końcu funkcji będziemy mogli zwrócić wynik. Przypisujemy jej wartość 0, jako że początkowo nie znamy żadnego dzielnika. Kolejnym krokiem będzie stworzenie pętli “for i in range”. Jako jej argumenty podajemy 1 i x+1, aby nasza funkcja sprawdzała podzielność zmiennej x przez wszystkie liczby od 1 do samego x. W pętli for zamieszczamy instrukcję warunkową, która sprawdza podzielność naszej liczby przez dzielnik. Jeżeli ten warunek jest spełniony, to zwiększamy wynik o 1. Na sam koniec funkcji zwracamy liczbę dzielników wprowadzonej do funkcji zmiennej.

Kod programu Python

def tau(x):
  liczba_dzielnikow=0
  for i in range(1, x+1):
    if x%i==0:
      liczba_dzielnikow+=1
  return liczba_dzielnikow
n=int(input())
print(tau(n))

Dane wypisane do konsoli

24

Wynik wypisany w konsoli

8

Funkcja sprawdzająca, czy dana liczba naturalna jest pierwsza

Dla przypomienia - liczba pierwsza to liczba, która ma dokładnie dwa dzielniki naturalne – 1 i samą siebie.

Zaczniemy od zdefiniowania funkcji i nadania jej argumentów: w tym przypadku jednego - liczby, którą sprawdzamy, czy jest pierwsza. Warto zauważyć, że jeśli liczba n ma dzielnik d mniejszy od niej i różny od 1 to również n/d też jest dzielnikiem n. Oznacza to, że wystarczy sprawdzać, czy istnieje dzielnik mniejszy lub równy pierwiastkowi z n. Jako że pierwiastek nie zawsze jest liczbą naturalną, to musimy zaokrąglić go do liczby całkowitej, gdyż chcemy, aby był argumentem pętli for - posłuży nam do tego funkcja floor (podłoga), która zaokrągla liczbę, do najbliższej liczby całkowitej. Musimy zaimportować również bibliotekę matematyczną, aby móc użyć funkcji floor i sqrt. Jako że każda liczba podzielna jest przez 1, musimy zacząć pętle od liczby 2. Kolejnym krokiem w budowie tej funkcji jest dołożenie instrukcji warunkowej. Warunek, który sprawdza podzielność. Jeśli liczba jest podzielna przez “i” oznacza to, że nie jest pierwsza, zwracamy wtedy False. Na sam koniec dodajemy komendę zwracania True, która wykona się, jeżeli, ani razu n nie będzie podzielne przez "i". Będzie to oznaczać, że n jest liczbą pierwszą. Warto zauważyć, że dla liczb 0 i 1, pętla nie zacznie działać, zatem funkcja zwróci wartość True. Musimy zatem dopisać warunek sprawdzający, czy dana liczba do funkcji jest równa 0 lub 1.

Kod programu Python

from math import *
def czy_pierwsza(n):
  if n==1 or n==0:
    return False
  for i in range(2, floor(sqrt(n))+1):
    if(n%i==0):
      return False
  return True
n=int(input())
if(czy_pierwsza(n)):
  print(n, "jest liczbą pierwszą.")
else:
  print(n, "nie jest liczbą pierwszą.")

Dane wypisane do konsoli

7

Wynik wypisany w konsoli

7 jest liczbą pierwszą.

Dane wypisane do konsoli

8

Wynik wypisany w konsoli

8 nie jest liczbą pierwszą.

Funkcja σ - funkcja zwracająca sumę dzielników danej liczby

Musimy zdefiniować funkcję i nadać jej nazwę, w naszym przypadku nazwaliśmy ją "sigma". Następnie dodajemy do niej jeden argument – liczbę, której sumę dzielników zwrócimy. W naszym przypadku "x". Tworzymy zmienną “suma", która będzie zliczać sumę kolejnych dzielników liczby. Przypisujemy jej wartość 0, jako że początkowo nie znamy żadnego dzielnika. Kolejnym krokiem będzie stworzenie pętli “for i in range”. Jako jej argumenty podajemy 1 i x+1, aby nasza funkcja sprawdzała podzielność zmiennej x przez wszystkie liczby od 1 do samego x. W pętli for zamieszczamy instrukcję warunkową, która sprawdza podzielność naszej liczby przez dzielnik. Jeżeli ten warunek jest spełniony, to zwiększamy wynik o dzielnik. NA sam koniec funkcji zwracamy sumę dzielników wprowadzonej do funkcji zmiennej.

Kod programu Python

def sigma(x):
  suma=0
  for i in range(1, x+1):
    if x%i==0:
      suma+=i
  return suma
n=int(input())
print(sigma(n))

Dane wypisane do konsoli

6

Wynik wypisany w konsoli

12

Funkcja określająca czy liczba jest deficytowa, doskonała czy nadmiarowa.

Zdefiniujmy nazwy:
Liczba deficytowa - liczba, której suma dzielników liczby n jest mniejsza od 2n.
Liczba doskonała - liczba, której suma dzielników liczby n jest równa 2n.
Liczba nadmiarowa - liczba, której suma dzielników liczby n jest większa od 2n.

Możemy wykorzystać powyższą funkcję, która zwraca sumę dzielników liczby. Musimy dodać jedynie instrukcję warunkową, która pozwoli nam stwierdzić, czy liczba jest deficytowa, doskonała czy nadmiarowa.

Kod programu Python

def sigma(x):
  suma=0
  for i in range(1, x+1):
    if x%i==0:
      suma+=i
  return suma
n=int(input())
if sigma(n)<2*n:
  print(n, "jest deficytowa.")
elif sigma(n)==2*n:
  print(n, "jest doskonała.")
else:
  print(n, "jest nadmiarowa.")

Dane wypisane do konsoli

12

Wynik wypisany w konsoli

12 jest nadmiarowa.

Dane wypisane do konsoli

6

Wynik wypisany w konsoli

6 jest doskonała.

Dane wypisane do konsoli

4

Wynik wypisany w konsoli

4 jest deficytowa.

Poprzednia lekcja Następna lekcja