Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
31
Task/Emirp-primes/Sidef/emirp-primes.sidef
Normal file
31
Task/Emirp-primes/Sidef/emirp-primes.sidef
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
func forprimes(a, b, callback) {
|
||||
for (var p = a.dec.next_prime; p <= b; p.next_prime!) {
|
||||
callback(p)
|
||||
}
|
||||
}
|
||||
|
||||
func is_emirp(p) {
|
||||
var str = Str(p)
|
||||
var rev = str.reverse
|
||||
(str != rev) && is_prime(Num(rev))
|
||||
}
|
||||
|
||||
func emirp_list(count) {
|
||||
var i = 13
|
||||
var inc = (100 + 10*count)
|
||||
var n = []
|
||||
while (n.len < count) {
|
||||
forprimes(i, i+inc - 1, {|p|
|
||||
is_emirp(p) && (n << p)
|
||||
})
|
||||
(i, inc) = (i+inc, int(inc * 1.03) + 1000)
|
||||
}
|
||||
n.splice(count)
|
||||
return n
|
||||
}
|
||||
|
||||
say ("First 20: ", emirp_list(20).join(' '))
|
||||
say ("Between 7700 and 8000: ", gather {
|
||||
forprimes(7700, 8000, {|p| is_emirp(p) && take(p) })
|
||||
}.join(' '))
|
||||
say ("The 10,000'th emirp: ", emirp_list(10000)[-1])
|
||||
Loading…
Add table
Add a link
Reference in a new issue