Witam, robię zadanie ze spoja w jęzku Python. Oto jego treść:
Wejście
Na wejście programu podana zostanie pewna ilość zestawów danych (co najwyżej 1000). Każdy z zestawów ma postać:
n x1 x2 … xn
gdzie n jest liczbą naturalną (z zakresu 1-1000), po której następuje n liczb całkowitych x1 x2 … xn (z zakresu od 1 do 1.000.000.000). Poszczególne liczby w zestawie zostaną rozdzielone spacją, a poszczególne zestawy znakiem nowej linii.
Wyjście
Dla każdego z wczytanych z wejścia zestawów należy wyznaczyć największy wspólny dzielnik liczb tworzących dany zestaw. Poszczególne wyniki należy oddzielić od siebie znakiem nowej linii.
Przykład
Wejście:
3 24 12 6
3 10 5 1
1 3
Wyjście:
6
1
3
Stworzyłem takie coś:
def nwd(a,b):
while a != b:
if a > b:
a = a - b
else:
b = b - a
return a
while 1:
try:
liczba = [int(x) for x in raw_input().split()]
except EOFError: break
if liczba:
najwiekszy=reduce(nwd,liczba)
print najwiekszy
else:
break
Można powiedzieć,że prawie to działa ;] liczy ładnie nwd itd, ale problem w tym,że nie potrafię stworzyć tego warunku, którym jest pierwsza liczba. jak zrobić Aby pętla nie wczytywała do enter, a tylko wybrana ilosc liczb ? próbowałem np z :
ile=raw_input()
while ile:
...
ile=ile-1
ale w takim wypadku ograniczam tylko ilosc zestawow,a nie liczby w danym zestawie. Jest mi ktoś w stanie podpowiedzieć ?