file = open('przyklad.txt', 'r')
data = []
for line in file:
data.append(int(line.strip()))
def nwd(a, b):
if b > 0:
return nwd(b, a % b)
return a
dlugosc_ciagu = 1
naj_dlugosc_ciagu = 0
letter = 0
naj_letter = 0
nwd1 = 0
naj_nwd1 = 0
for i in range(0, len(data)-1):
dlugosc_ciagu = 1
letter = data[i]
if nwd(data[i], data[i + 1]) > 1:
nwd1 = nwd(data[i], data[i + 1])
dlugosc_ciagu = 2
x = 2
for j in range(i + x, len(data) + 1):
if nwd(nwd1, data[j]) > 1:
nwd1 = nwd(nwd1, data[j])
dlugosc_ciagu += 1
x += 1
else:
break
if dlugosc_ciagu > naj_dlugosc_ciagu:
naj_dlugosc_ciagu = dlugosc_ciagu
naj_letter = letter
naj_nwd1 = nwd1
else:
break
print(naj_letter,naj_dlugosc_ciagu,naj_nwd1)
Bardzo bym prosił o wskazanie w której linii występuje błąd, przez który wartości są jakie śa:14(pierwsza liczba) 4(dlugosc) 7(NWD).
W pliku liczby.txt znajdź najdłuższy ciąg liczb występujących kolejno po sobie i taki, że największy wspólny dzielnik ich wszystkich jest większy od 1 (innymi słowy: istnieje taka liczba całkowita większa od 1, która jest dzielnikiem każdej z tych liczb). Jako odpowiedź podaj wartość pierwszej liczby w takim ciągu, długość ciągu oraz największą liczbę całkowitą, która jest dzielnikiem każdej liczby w tym ciągu. W pliku z danymi jest tylko jeden taki ciąg o największej długości. Uwaga: Możesz skorzystać z zależności NWD(a, b, c) = NWD(NWD(a, b), c).
Przykład: Dla liczb 3, 7, 4, 6, 10, 2, 5 odpowiedzią jest 4 (pierwsza liczba ciągu), 4 (długość ciągu) i 2 (największy wspólny dzielnik), natomiast dla liczb 5, 70, 28, 42, 98, 1 odpowiedzią jest 70 (pierwsza liczba ciągu), 4 (długość ciągu) i 14 (największy wspólny dzielnik).
Odpowiedź dla pliku przyklad.txt: pierwsza liczba ciągu 90, długość 5, największy wspólny dzielnik 10.