Dzień dobry
Mam problem z poniższym zadaniem. Po wrzuceniu rozwiązania do sprawdzarki "themis" otrzymuje odpowiedź "Illegal syscall". Sam nie wiem gdzie zrobiłem błąd. Kod kompiluje się bez błędu i liczy wszystkie zadane wartości dobrze.
Treść zadania (NWD wielu liczb):
Napisz program, który oblicza największy wspólny dzielnik ciągu liczb naturalnych.
Wejście:
W pierwszym wierszu znajduje się liczba naturalna n, nie większa od 100000.
W drugim wierszu znajduje się ciąg n liczb naturalnych, nie większych od 10^15.
Wyjście: Liczba równa największemu wspólnemu dzielnikowi wszystkich liczb z ciągu.Przykład
Dla danych wejściowych
4
21 224 84 1050
poprawną odpowiedzią jest: 7
Mój kod:
#include <iostream>
using namespace std;
long long nwd(long long a, long long b)
{
long long pomocnicza;
while (b != 0)
{
pomocnicza = a % b;
a = b;
b = pomocnicza;
}
return a;
}
long long nwd(long long* tab, long long ile)
{
long long nwdw = tab[0];
for (long long i = 1; i < ile; i++)
{
nwdw = nwd(nwdw, tab[i]);
}
return nwdw;
}
int main ()
{
long long ile;
long long* tab = new long long[ile];
cerr << "Ile liczb jest w ciagu: ";
cin >> ile;
cerr <<"Podaj "<<ile<<" liczby: "<< endl;
for (long long i = 0; i < ile; i++)
{
cin >> tab[i];
}
cout << "NWD ciagu = " << nwd(tab, ile) << endl;
return 0;
}