Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,38 @@
|
|||
OpenConsole()
|
||||
Procedure is89(x)
|
||||
Repeat
|
||||
s=0
|
||||
While x : s+ x%10*x%10 : x/10 : Wend
|
||||
If s=89 : ProcedureReturn 1 : EndIf
|
||||
If s=1 : ProcedureReturn 0 : EndIf
|
||||
x=s
|
||||
ForEver
|
||||
EndProcedure
|
||||
|
||||
Procedure main()
|
||||
Dim sums(32*81+1) : sums(0)=1 : sums(1)=0
|
||||
|
||||
For n=1 To n+1
|
||||
For i=n*81 To 1 Step -1
|
||||
For j=1 To 9
|
||||
s=j*j : If s>i : Break : EndIf
|
||||
sums(i)+sums(i-s)
|
||||
Next
|
||||
Next
|
||||
count89=0
|
||||
For i=1 To n*81+1
|
||||
If Not is89(i) : Continue : EndIf
|
||||
If sums(i)>9223372036854775807-count89
|
||||
PrintN("counter overflow for 10^"+Str(n))
|
||||
ProcedureReturn 0
|
||||
EndIf
|
||||
count89+sums(i)
|
||||
Next
|
||||
PrintN("1->10^"+LSet(Str(n),2,Chr(32))+": "+Str(count89))
|
||||
Next
|
||||
EndProcedure
|
||||
|
||||
start=ElapsedMilliseconds()
|
||||
main()
|
||||
Print("elapsed milliseconds= "+Str(ElapsedMilliseconds()-start))
|
||||
Input()
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue