Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
70
Task/Pell-numbers/FreeBASIC/pell-numbers.basic
Normal file
70
Task/Pell-numbers/FreeBASIC/pell-numbers.basic
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#define isOdd(a) (((a) and 1) <> 0)
|
||||
|
||||
Function isPrime(Byval ValorEval As Integer) As Boolean
|
||||
If ValorEval < 2 Then Return False
|
||||
If ValorEval Mod 2 = 0 Then Return ValorEval = 2
|
||||
If ValorEval Mod 3 = 0 Then Return ValorEval = 3
|
||||
Dim d As Integer = 5
|
||||
While d * d <= ValorEval
|
||||
If ValorEval Mod d = 0 Then Return False Else d += 2
|
||||
If ValorEval Mod d = 0 Then Return False Else d += 4
|
||||
Wend
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Dim As Integer n
|
||||
Dim As Integer p(0 To 40), pl(0 To 40)
|
||||
p(0)= 0: p(1) = 1
|
||||
pl(0) = 2: pl(1) = 2
|
||||
For n = 2 To 40
|
||||
p(n) = 2 * p(n-1) + p(n-2)
|
||||
pl(n) = 2 * pl(n-1) + pl(n-2)
|
||||
Next n
|
||||
|
||||
Print "First 20 Pell numbers: "
|
||||
For n = 0 To 19 : Print p(n); : Next n
|
||||
Print !"\n\nFirst 20 Pell-Lucas: "
|
||||
For n = 0 To 19 : Print pl(n); : Next n
|
||||
|
||||
Print !"\n\nFirst 20 rational approximations of sqrt(2) (" & Str(Sqr(2)) & "): "
|
||||
For n = 1 To 20
|
||||
Dim As Integer j = pl(n)/2, d = p(n)
|
||||
Print Using " &/& ~= &"; j; d; j/d
|
||||
Next n
|
||||
|
||||
Print !"\nFirst 6 Pell primes: [for the limitations of the FB standard library]"
|
||||
Dim as Integer pdx = 2
|
||||
Dim As Byte c = 0
|
||||
Dim As Ulongint ppdx(1 to 20)
|
||||
do
|
||||
If isPrime(p(pdx)) Then
|
||||
If isPrime(pdx) Then ppdx(c) = pdx : End If
|
||||
Print p(pdx)
|
||||
c += 1
|
||||
End If
|
||||
pdx += 1
|
||||
loop until c = 6
|
||||
|
||||
Print !"\nIndices of first 6 Pell primes: [for the limitations of the FB standard library]"
|
||||
For n = 0 To 5 : Print " "; ppdx(n); : Next n
|
||||
|
||||
Dim As Ulongint nsw(0 To 20)
|
||||
For n = 0 To 19
|
||||
nsw(n) = p(2*n) + p(2*n+1)
|
||||
Next n
|
||||
Print !"\n\nFirst 20 Newman-Shank-Williams numbers: "
|
||||
For n = 0 To 19 : Print " "; nsw(n); : Next n
|
||||
|
||||
Print !"\n\nFirst 20 near isosceles right triangles:"
|
||||
Dim As Integer i0 = 0, i1 = 1, i2, t = 1, i = 2, found = 0
|
||||
Do While found < 20
|
||||
i2 = i1*2 + i0
|
||||
If isOdd(i) Then
|
||||
Print Using " [&, &, &]"; t; t+1 ; i2
|
||||
found += 1
|
||||
End If
|
||||
t += i2
|
||||
i0 = i1 : i1 = i2
|
||||
i += 1
|
||||
Loop
|
||||
Sleep
|
||||
Loading…
Add table
Add a link
Reference in a new issue