Data update
This commit is contained in:
parent
35bcdeebf8
commit
74c69a0df6
2427 changed files with 31826 additions and 3468 deletions
46
Task/Almost-prime/Sidef/almost-prime-1.sidef
Normal file
46
Task/Almost-prime/Sidef/almost-prime-1.sidef
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
func almost_primes(a, b, k) {
|
||||
|
||||
a = max(2**k, a)
|
||||
var arr = []
|
||||
|
||||
func (m, lo, k) {
|
||||
|
||||
var hi = idiv(b,m).iroot(k)
|
||||
|
||||
if (k == 1) {
|
||||
|
||||
lo = max(lo, idiv_ceil(a, m))
|
||||
|
||||
each_prime(lo, hi, {|p|
|
||||
arr << m*p
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
each_prime(lo, hi, {|p|
|
||||
|
||||
var t = m*p
|
||||
var u = idiv_ceil(a, t)
|
||||
var v = idiv(b, t)
|
||||
|
||||
next if (u > v)
|
||||
|
||||
__FUNC__(t, p, k-1)
|
||||
})
|
||||
}(1, 2, k)
|
||||
|
||||
return arr.sort
|
||||
}
|
||||
|
||||
for k in (1..5) {
|
||||
var (x=10, lo=1, hi=2)
|
||||
var arr = []
|
||||
loop {
|
||||
arr += almost_primes(lo, hi, k)
|
||||
break if (arr.len >= x)
|
||||
lo = hi+1
|
||||
hi = 2*lo
|
||||
}
|
||||
say arr.first(x)
|
||||
}
|
||||
4
Task/Almost-prime/Sidef/almost-prime-2.sidef
Normal file
4
Task/Almost-prime/Sidef/almost-prime-2.sidef
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
for k in (1..5) {
|
||||
var x = 10
|
||||
say k.almost_primes(x.nth_almost_prime(k))
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
func is_k_almost_prime(n, k) {
|
||||
for (var (p, f) = (2, 0); (f < k) && (p*p <= n); ++p) {
|
||||
(n /= p; ++f) while (p `divides` n)
|
||||
}
|
||||
n > 1 ? (f.inc == k) : (f == k)
|
||||
}
|
||||
|
||||
{ |k|
|
||||
var x = 10
|
||||
say gather {
|
||||
{ |i|
|
||||
if (is_k_almost_prime(i, k)) {
|
||||
take(i)
|
||||
--x == 0 && break
|
||||
}
|
||||
} << 1..Inf
|
||||
}
|
||||
} << 1..5
|
||||
Loading…
Add table
Add a link
Reference in a new issue