I Liceum Ogólnokształcące w Jarosławiu - Informatyka

Czy ta liczba jest pierwsza?

Liczby pierwsze i liczby złożone

Liczba pierwsza to liczba naturalna większa od 1, która dzieli się wyłącznie przez 1 i samą siebie. Przykłady liczb pierwszych to: 2, 3, 5, 7, 11, 13, 17, ...
Liczba złożona to liczba naturalna większa od 1, która posiada więcej niż dwa dzielniki. Oznacza to, że można ją rozłożyć na iloczyn liczb mniejszych od niej samej. Przykłady liczb złożonych: 4 (2×2), 6 (2×3), 8 (2×4), 9 (3×3), 10 (2×5), ...

Rozkład liczb na czynniki pierwsze

Rozkład na czynniki pierwsze polega na przedstawieniu liczby jako iloczynu liczb pierwszych. Przykłady:
Rozkład ten pozwala łatwo określić, czy dana liczba jest pierwsza – jeśli ma więcej niż dwa dzielniki, to jest liczbą złożoną.

Podzielność liczb

Badanie podzielności przez 3

Liczba jest podzielna przez 3, jeśli suma jej cyfr jest podzielna przez 3.
Przykłady:

  • 123 → 1 + 2 + 3 = 6 (podzielne przez 3)
  • 145 → 1 + 4 + 5 = 10 (niepodzielne przez 3)

  • Kod w Pythonie sprawdzający podzielność przez 3:

    
    # Funkcja sprawdza, czy liczba podana przez użytkownika jest podzielna przez 3.
    def podzielna_przez_3():
        liczba = int(input("Podaj liczbę: "))
        suma_cyfr = sum(int(cyfra) for cyfra in str(liczba))
        if suma_cyfr % 3 == 0:
            print(f"Liczba {liczba} jest podzielna przez 3.")
        else:
            print(f"Liczba {liczba} nie jest podzielna przez 3.")
    
    podzielna_przez_3()
        

    Badanie podzielności przez kilka liczb jednocześnie

    Jeśli chcemy sprawdzić podzielność przez więcej niż jedną liczbę, możemy użyć operatora modulo (%) dla każdej z nich. Na przykład, sprawdzenie podzielności przez 2, 3 i 5:

    
    # Funkcja sprawdza podzielność liczby przez wiele podanych dzielników.
    def podzielna_przez_kilka():
        liczba = int(input("Podaj liczbę: "))
        dzielniki = list(map(int, input("Podaj dzielniki oddzielone spacją: ").split()))
        podzielne = [d for d in dzielniki if liczba % d == 0]
        niepodzielne = [d for d in dzielniki if liczba % d != 0]
        
        if podzielne:
            print(f"Liczba {liczba} jest podzielna przez: {', '.join(map(str, podzielne))}.")
        if niepodzielne:
            print(f"Liczba {liczba} nie jest podzielna przez: {', '.join(map(str, niepodzielne))}.")
    
    podzielna_przez_kilka()
        

    Test pierwszości liczb

    Sprawdzanie, czy liczba jest pierwsza, polega na sprawdzeniu, czy dzieli się przez jakąkolwiek liczbę mniejszą od siebie (ale większą od 1). W Pythonie można to zapisać tak:

    
    # Funkcja sprawdza, czy podana liczba jest pierwsza.
    def czy_pierwsza():
        n = int(input("Podaj liczbę: "))
        if n < 2:
            print(f"Liczba {n} nie jest liczbą pierwszą.")
            return
        for i in range(2, int(n**0.5) + 1):
            if n % i == 0:
                print(f"Liczba {n} nie jest liczbą pierwszą, dzieli się przez {i}.")
                return
        print(f"Liczba {n} jest liczbą pierwszą.")
    
    czy_pierwsza()