Faktorion

Faktorion, liczba faktorialna – liczba naturalna, która w danym systemie pozycyjnym jest równa sumie silni swoich cyfr.

Faktorion nazywa się:

Suma silni cyfr

Dla liczby naturalnej , podstawy systemu pozycyjnego oraz definiuje się funkcję sumy silni cyfr (ang. sum of the factorials of the digits):

jest wartością -tej cyfry liczby.

Liczba naturalna jest liczbą faktorialną w podstawie , jeżeli spełnia warunek:

.

Przykładowo w systemie dziesiętnym:

,

dlatego liczba jest faktorionem.

Własności

Faktorion spełnia następujące zależności:

Przykłady

Pierwsze nietrywialne liczby faktorialne w systemie dziesiętnym:

Rozwinięcie

Informatyka

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ą.

Implementacja w C++

#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.

Przypisy

  1. ↑ Eric W. Weisstein, Factorion [online], mathworld.wolfram.com (ang.).
  2. ↑ SFD Chains and Factorion Cycles, www.tandfonline.com, DOI: 10.1017/S002555720017500X (ang.).
  3. ↑ Find sum of digits in factorial of a number [online], GeeksforGeeks, 12 czerwca 2017 (ang.).