Paste #264194

   
pasted on 14.08.2022 11:31
  • Edit to this paste
  • Print
  • Raw
  • Compare with paste
    #  
  • Toggle line numbers
  • Syntax highlighting  
Text paste
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
link random
procedure main()
write(pi_simple(100))
write(ramanujan(100))
end

procedure ramanujan(n)
local a,k,pi,b,c,s,d,e
a:=(2*sqrt(2))/9801.0
k:=0
s:=0
while k<n do {
	b:=factorial(4*k)
	c:=1103+26390*k
	d:=factorial(k)^4
	e:=396^(4*k)
	s+:=(b*c)/(d*e)
	k+:=1
}
return 1/(s*a)
end

procedure factorial_i(n)
local i,p
if n<2 then return 1 else {
 i:=2
 p:=1
 while i<n do {
 p*:=i
 i+:=1
 }
 return p
}
end

procedure pi_simple(n)
local x,y,i,m,p
m:=0.0
randomize()
every i:=1 to n do {
 x:=?400
 y:=?1000
 if gcd(x,y)=1 then m+:=1.0
}
p:=m/n
return sqrt(6/p)
end

procedure gcd_b(m,n)
if m=0 then return n
if n=0 then return m
 	if m=1|n=1 then return 1 else {
 	if m%2=0 & n%2=1 then return gcd(m/2,n)
        if m%2=1 & n%2=0 then return gcd(m,n/2)
        if m%2=0 & n%2=0 then return 2*gcd(m/2,n/2)
        if m%2=1 & n%2=1 then {
        	if n>m then return gcd((n-m)/2,m) else return gcd((m-n)/2,n) 
        	
        }
 	}

end
Add Comment
Author