return static_cast<int>(number); }Metoda iteracyjna odwzorowuje definicję pierwiastka cyfrowego dla dowolnej podstawy systemu liczbowego. Polega na wielokrotnym sumowaniu cyfr liczby w systemie o podstawie base, aż do uzyskania wyniku jednocyfrowego. Złożoność obliczeniowa wynosi na każdą redukcję, gdzie to liczba cyfr.

Implementacja modularna #include <iostream> using namespace std;

int digital_root(long long number, int base = 10) { if (number == 0) return 0; return 1 + ((number - 1) % (base - 1)); }Metoda wzorowa wykorzystuje własność . Dzięki temu wynik można obliczyć bez iteracji. W tym przypadku złożoność obliczeniowa wynosi . Przypisy

Kategoria:Teoria liczb Kategoria:Działania na liczbach Kategoria:Arytmetyka modularna