Jump to content

Ramanujan primes: Difference between revisions

m
add timings
m (use primes instead of primesmask)
m (add timings)
Line 100:
<lang julia>using Primes
 
@time let
MASK = primesmask(625000)
PIVEC = accumulate(+, MASK)
PI(in) -= PI(i ÷ 2)n < n1 &&? return0 i: + 1PIVEC[n]
 
function Ramanujan_prime(n)
const PRIMES = [primes(625000)]
maxposs = Int(ceil(4n * (log(4n) / log(2))))
 
for i in maxposs:-1:1
function PI(n)
PI(i) - PI(i ÷ 2) < n && return i + 1
if n > first(PRIMES)[end]
empty!(PRIMES)end
push!(PRIMES,return primes(2n))0
end
return n < 100000 ? findfirst(x -> x > n, first(PRIMES)) - 1 :
findlast(x -> x <= n, first(PRIMES))
end
 
for i in 1:100
 
function print(lpad(Ramanujan_prime(i), 5), i % 20 == 0 ? "\n" : "")
maxposs = Int(ceil(4n * (log(4n) / log(2))))
for i in maxposs:-1:1
PI(i) - PI(i ÷ 2) < n && return i + 1
end
return 0
end
 
println("\nThe 1000th Ramanujan prime is ", Ramanujan_prime(1000))
for i in 1:100
println("\nThe 10,000th Ramanujan prime is ", Ramanujan_prime(10000))
print(lpad(Ramanujan_prime(i), 5), i % 20 == 0 ? "\n" : "")
end
 
println("\nThe 1000th Ramanujan prime is ", Ramanujan_prime(1000))
 
println("\nThe 10,000th Ramanujan prime is ", Ramanujan_prime(10000))
</lang>{{out}}
<pre>
4,105

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.