Happy numbers: Difference between revisions

Content deleted Content added
Added BBC BASIC
Markjreed (talk | contribs)
→‎{{header|Ursala}}: Add UNIX shell version
Line 1,918: Line 1,918:
puts "the first 8 happy numbers are: [list $happy]"</lang>
puts "the first 8 happy numbers are: [list $happy]"</lang>
<pre>the first 8 happy numbers are: {1 7 10 13 19 23 28 31}</pre>
<pre>the first 8 happy numbers are: {1 7 10 13 19 23 28 31}</pre>

=={{header|UNIX Shell}}==
<lang bash>#!/bin/bash
function sum_of_square_digits
{
local -i n="$1" sum=0
while (( n )); do
local -i d=n%10
let sum+=d*d
let n=n/10
done
echo "$sum"
}

function is_happy?
{
local -i n="$1"
local seen=()
while (( n != 1 )); do
if [ -n "${seen[$n]}" ]; then
return 1
fi
seen[n]=1
let n="$(sum_of_square_digits "$n")"
done
return 0
}

function first_n_happy
{
local -i count="$1"
local -i n
for (( n=0; count; n+=1 )); do
if is_happy? "$n"; then
echo "$n"
let count-=1
fi
done
return 0
}

first_n_happy 8</lang>



=={{header|Ursala}}==
=={{header|Ursala}}==