Potrzebuję napisać program, aby znaleźć całkowity pierwiastek kwadratowy z liczby, która ma tysiące cyfr. Nie mogę używać Newtona Raphsona, ponieważ nie mam typów danych do przechowywania i dzielenia tak dużych liczb. Używam długiej tablicy w C do przechowywania numeru. Czy istnieje algorytm znajdowania pierwiastka kwadratowego przez może iterowanie po cyfrach?Jaki jest skuteczny algorytm znajdowania pierwiastka kwadratowego liczby całkowitej z bardzo dużej liczby, cyfra po cyfrze?
Edit:
Nie mogę korzystać z zewnętrznej biblioteki jak GMP.
See [wikipedia] (http://en.wikipedia.org/wiki/Methods_of_computing_square_roots). –
@alexvii Podana tam metoda dziesiętnej bazy wymaga znalezienia x (20 * p + x), ale ponieważ moja cyfra jest bardzo duża, p również będzie duże i obliczanie takiej wartości może być bardzo powolne. Zastanawiałem się, czy istnieje jakakolwiek metoda, która nie wymagałaby mnożenia tak dużych liczb. – Naman
Czy możesz zabrać zewnętrzne biblioteki? Ponieważ [Biblioteka wielowymiarowa arytmetyczna GNU] (https://gmplib.org/), między innymi. –