#! /bin/bash

function hany_szamjegy()
{
    local SZAM=$1
    local SZAMJEGYEK_SZAMA=0
    while [[ $SZAM -gt 0 ]]
    do
        ((SZAM/=10))
        ((SZAMJEGYEK_SZAMA++))
    done
    echo $SZAMJEGYEK_SZAMA
}

function hatvany()
{
    local ALAP=$1
    local KITEVO=$2
    local HATVANY=1
    for ((i=0; i<KITEVO; i++))
    do
        ((HATVANY*=ALAP))
    done
    echo $HATVANY
}

function armstrong_szam()
{
    local SZAM=$1
    local OSSZEG=0
    local OSZTANDO=$SZAM
    local SZAMJEGYEK_SZAMA=$(hany_szamjegy $SZAM)
    for ((i=0; i<SZAMJEGYEK_SZAMA; i++))
    do
        local UTOLSO_JEGY=$(($OSZTANDO % 10))
        local RESULT=$(hatvany $UTOLSO_JEGY $SZAMJEGYEK_SZAMA)
        ((OSSZEG+=RESULT))
        ((OSZTANDO/=10))
    done
    if [ $OSSZEG -eq $SZAM ]
    then
        echo 1
    else
        echo 0
    fi
}

for ((i=0; i<10; i++))
    do
        echo -n $i" "
    done

MEDDIG=$(hatvany 2 62)
((MEDDIG-=1))
((MEDDIG+=$(hatvany 2 62)))

for ((i=10; i<MEDDIG; i++))
do
    RESULT=$(armstrong_szam $i)
    if [ $RESULT -eq 1 ]
    then
        echo -n $i" "
    fi
done

echo
