👤

Python- napisz program, który wczyta liczby całkowite dodatnie i sprawdza czy są one względnie pierwsze. Dwie liczby są względnie pierwsze jeśli nie mają wspólnych podzielników różny od 1 i -1, oraz losuje dwie liczby z podanego zakresu i sprawdza czy są względnie pierwsze.

Odpowiedź :

Odpowiedź:

#Część pierwsza

import random

a=int(input("Podaj pierwszą liczbę: "))

b=int(input("Podaj drugą liczbę: "))

x=a

y=b

while a!=b:

if a>b:

  a=a-b

else:

  b=b-a

if a==1:

print('Liczby',x,'i',y,'są względnie pierwsze.')

else:

print('Liczby',x,'i',y,'nie są liczbami względnie pierwszymi.')

#Część druga

start=int(input("Podaj początek zakresu: "))

end=int(input("Podaj koniec zakresu: "))

a=random.randint(start,end)

b=random.randint(start,end)

x=a

y=b

while a!=b:

if a>b:

  a=a-b

else:

  b=b-a

if a==1:

print('Liczby',x,'i',y,'są względnie pierwsze.')

else:

 print('Liczby',x,'i',y,'nie są liczbami względnie pierwszymi.')

Wyjaśnienie:

Dwie liczby są względnie pierwsze jeśli nie mają wspólnych podzielników różny od 1 i -1.

Ujmując to inaczej:

Dwie liczby są względnie pierwsze, gdy ich Największy Wspólny Dzielnik wynosi 1.

Będziemy więc szukać NWD podanych liczb. Zrobimy to za pomocą Algorytmu Euklidesa w wersji z odejmowaniem (odejmujemy od większej liczby mniejszą, a wynik podstawiamy za większą liczbę. Wykonujemy tą operację do momentu, aż obie liczby będą sobie równe. Liczba ta jest wówczas NWD tych liczb).

Cały program składa się z dwóch części. Pierwsza, w której użytkownik podaje liczby i druga, w której liczby są losowane z podanego przez użytkownika zakresu.