RosettaCodeData/Task/Iterated-digits-squaring/PureBasic/iterated-digits-squaring-2....

32 lines
609 B
Plaintext

OpenConsole()
Procedure sum_square_digits(n)
num=n : sum=0
While num>0
digit=num%10
num=(num-digit)/10
sum+ digit*digit
Wend
ProcedureReturn sum
EndProcedure
Procedure main()
i=0 : result=0 : count=0
For i=1 To 1e8
If Not i=1 Or Not i=89
result=sum_square_digits(i)
Else
result=i
EndIf
While Not result=1 And Not result=89
result=sum_square_digits(result)
Wend
If result=89 : count+1 : EndIf
Next
PrintN(Str(count))
EndProcedure
start=ElapsedMilliseconds()
main()
Print("elapsed milliseconds: "+Str(ElapsedMilliseconds()-start))
Input()