Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
54
Task/Pi/FreeBASIC/pi.basic
Normal file
54
Task/Pi/FreeBASIC/pi.basic
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
' version 05-07-2018
|
||||
' compile with: fbc -s console
|
||||
|
||||
' unbounded spigot
|
||||
' Ctrl-c to end program or close console window
|
||||
|
||||
#Include "gmp.bi"
|
||||
|
||||
Dim As UInteger num, ndigit, fp = Not 0
|
||||
Dim As mpz_ptr q,r,t,k,n,l,tmp1,tmp2
|
||||
q = Allocate(Len(__Mpz_struct)) : Mpz_init_set_ui(q,1)
|
||||
r = Allocate(Len(__Mpz_struct)) : Mpz_init(r)
|
||||
t = Allocate(Len(__Mpz_struct)) : Mpz_init_set_ui(t,1)
|
||||
k = Allocate(Len(__Mpz_struct)) : Mpz_init_set_ui(k,1)
|
||||
n = Allocate(Len(__Mpz_struct)) : Mpz_init_set_ui(n,3)
|
||||
l = Allocate(Len(__Mpz_struct)) : Mpz_init_set_ui(l,3)
|
||||
tmp1 = Allocate(Len(__Mpz_struct)) : Mpz_init(tmp1)
|
||||
tmp2 = Allocate(Len(__Mpz_struct)) : Mpz_init(tmp2)
|
||||
|
||||
Do
|
||||
mpz_mul_2exp(tmp1, q, 2)
|
||||
mpz_add(tmp1,tmp1,r)
|
||||
mpz_sub(tmp1,tmp1,t)
|
||||
mpz_mul(tmp2, n, t)
|
||||
If mpz_cmp(tmp1, tmp2) < 0 Then
|
||||
Print mpz_get_ui(n); : ndigit += 1 : If ndigit Mod 50 = 0 Then Print " :";ndigit
|
||||
If fp Then Print "."; : fp = Not fp : Print :ndigit = 0
|
||||
mpz_sub(tmp1, r, tmp2)
|
||||
mpz_mul_ui(tmp1, tmp1, 10)
|
||||
mpz_mul_ui(tmp2, q, 3)
|
||||
mpz_add(tmp2, tmp2, r)
|
||||
mpz_mul_ui(tmp2, tmp2, 10)
|
||||
mpz_set(r, tmp1)
|
||||
mpz_mul_ui(tmp1, n, 10)
|
||||
mpz_tdiv_q(tmp2, tmp2, t)
|
||||
mpz_sub(n, tmp2, tmp1)
|
||||
mpz_mul_ui(q, q, 10)
|
||||
Else
|
||||
mpz_mul(tmp2, r, l)
|
||||
mpz_mul(tmp1, q, k)
|
||||
mpz_mul_ui(tmp1, tmp1, 7)
|
||||
mpz_add(tmp1, tmp1, tmp2)
|
||||
mpz_mul_2exp(tmp2, q, 1)
|
||||
mpz_add(tmp2, tmp2, r)
|
||||
mpz_mul(tmp2, tmp2, l)
|
||||
mpz_mul(t, t, l)
|
||||
mpz_tdiv_q(tmp1, tmp1, t)
|
||||
mpz_mul(q, q, k)
|
||||
mpz_add_ui(k, k, 1)
|
||||
mpz_add_ui(l, l, 2)
|
||||
mpz_set(n, tmp1)
|
||||
mpz_set(r, tmp2)
|
||||
End If
|
||||
Loop
|
||||
Loading…
Add table
Add a link
Reference in a new issue