Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Happy-numbers/UNIX-Shell/happy-numbers.sh
Normal file
33
Task/Happy-numbers/UNIX-Shell/happy-numbers.sh
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
function sum_of_square_digits {
|
||||
typeset -i n=$1 sum=0 d
|
||||
while (( n )); do
|
||||
(( d=n%10, sum+=d*d, n=n/10 ))
|
||||
done
|
||||
printf '%d\n' "$sum"
|
||||
}
|
||||
|
||||
function is_happy {
|
||||
typeset -i n=$1
|
||||
typeset -a seen=()
|
||||
while (( n != 1 )); do
|
||||
if [[ -n ${seen[$n]} ]]; then
|
||||
return 1
|
||||
fi
|
||||
seen[$n]=1
|
||||
(( n=$(sum_of_square_digits "$n") ))
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
function first_n_happy {
|
||||
typeset -i count=$1 n
|
||||
for (( n=1; count; n+=1 )); do
|
||||
if is_happy "$n"; then
|
||||
printf '%d\n' "$n"
|
||||
(( count -= 1 ))
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
first_n_happy 8
|
||||
Loading…
Add table
Add a link
Reference in a new issue