Faktorion, liczba faktorialna – liczba naturalna, która w danym systemie pozycyjnym jest równa sumie silni swoich cyfr.
Faktorion nazywa się:
Dla liczby naturalnej , podstawy systemu pozycyjnego oraz definiuje się funkcję sumy silni cyfr (ang. sum of the factorials of the digits):
Liczba naturalna jest liczbą faktorialną w podstawie , jeżeli spełnia warunek:
Przykładowo w systemie dziesiętnym:
dlatego liczba jest faktorionem.
Faktorion spełnia następujące zależności:
Pierwsze nietrywialne liczby faktorialne w systemie dziesiętnym:
| Rozwinięcie | |
|---|---|
W informatyce liczba faktorialna jest definiowana względem podstawy systemu pozycyjnego . Sprawdzenie, czy liczba jest faktorionem, polega na obliczeniu sumy silni jej cyfr i porównaniu otrzymanego wyniku z liczbą wyjściową.
#include <iostream>
using namespace std;
long long factorial(int n) {
long long result = 1;
for (int i = 2; i <= n; i++) {
result *= i;
}
return result;
}
long long sfd(long long number, int base = 10) {
if (number == 0) return factorial(0);
long long sum = 0;
while (number > 0) {
sum += factorial(number % base);
number /= base;
}
return sum;
}
bool is_factorion(long long number, int base = 10) {
return sfd(number, base) == number;
}
Algorytm odwzorowuje bezpośrednio definicję funkcji . Polega na wyznaczeniu kolejnych cyfr liczby w systemie o podstawie base, obliczeniu ich silni oraz zsumowaniu otrzymanych wartości. Złożoność obliczeniowa wynosi , gdzie oznacza liczbę cyfr liczby.