#include <stdio.h>
#include <stdlib.h>

#define printf __mingw_printf

int hany_szamjegy(unsigned long long szam)
{
    int szamjegyek_szama = 0;
    while (szam > 0)
    {
        szam /= 10;
        szamjegyek_szama++;
    }
    return szamjegyek_szama;
}

unsigned long long hatvany(unsigned long long alap, int kitevo)
{
    unsigned long long hatvany = 1;
    for (int i = 0; i < kitevo; i++)
    {
        hatvany *= alap;
    }
    return hatvany;
}

int armstrong_szam(unsigned long long szam)
{
    unsigned long long osszeg = 0, osztando = szam;
    int szamjegyek_szama = hany_szamjegy(szam);
    for (int i = 0; i < szamjegyek_szama; i++)
    {
        osszeg += hatvany(osztando % 10, szamjegyek_szama);
        osztando /= 10;
    }
    return osszeg == szam;
}

int main()
{
    for (int szam = 0; szam < 10; szam++)
    {
        printf("%d ", szam);
    }
    for (unsigned long long szam = 10; szam < hatvany(2, 64) - 1; szam++)
    {
        if (armstrong_szam(szam))
        {
            printf("%llu ", szam);
        }
    }
    return 0;
}
