Rare numbers: Difference between revisions
Content added Content deleted
(→{{header|J}}: spacing) |
(Rare numbers en FreeBASIC) |
||
Line 1,243: | Line 1,243: | ||
Elapsed Time: 11275839 ms for length 17 |
Elapsed Time: 11275839 ms for length 17 |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
About 16.5 minutes to find the first 5 rare numbers |
|||
{{trans|Phix}} |
|||
<lang freebasic>#include "string.bi" |
|||
#define floor(x) ((x*2.0-0.5) Shr 1) |
|||
#define remainder(n, m) (n-m*Int(n/m)) |
|||
Function revn(n As Integer, nd As Integer) As Integer |
|||
Dim As Integer r = 0 |
|||
For i As Integer = 1 To nd |
|||
r = r * 10 + remainder(n, 10) |
|||
n = floor(n/10) |
|||
Next i |
|||
Return r |
|||
End Function |
|||
Dim As Integer nd = 2, count = 0, lim = 99, n = 9 |
|||
Do |
|||
n += 1 |
|||
Dim As Integer r = revn(n,nd) |
|||
If r < n Then |
|||
Dim As Integer s = n+r, d = n-r |
|||
If s = (floor(Sqr(s)) ^ 2) And d = (floor(Sqr(d)) ^ 2) Then |
|||
count += 1 |
|||
Print count; ":"; n |
|||
If count = 5 Then Exit Do : End If |
|||
End If |
|||
End If |
|||
If n = lim Then |
|||
lim = lim * 10 + 9 |
|||
nd += 1 |
|||
End If |
|||
Loop |
|||
Sleep</lang> |
|||
=={{header|Go}}== |
=={{header|Go}}== |