Data update
This commit is contained in:
parent
aec8ed51b6
commit
29a5eea0d4
128 changed files with 1298 additions and 0 deletions
29
Task/Almost-prime/Onyx-(wasm)/almost-prime-1.onyx
Normal file
29
Task/Almost-prime/Onyx-(wasm)/almost-prime-1.onyx
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package main
|
||||
use core {printf}
|
||||
main :: () -> void {
|
||||
printf("\n");
|
||||
for k in 1..6 {
|
||||
printf("k = {}:", k);
|
||||
i := 2;
|
||||
c: i32;
|
||||
while c < 10 {
|
||||
if kprime(i, k) {
|
||||
printf(" {}", i);
|
||||
c += 1;
|
||||
}
|
||||
i += 1;
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
kprime :: (n: i32, k: i32) -> bool {
|
||||
f: i32;
|
||||
while p := 2; f < k && p * p <= n {
|
||||
while n % p == 0 {
|
||||
n /= p;
|
||||
f += 1;
|
||||
}
|
||||
p += 1;
|
||||
}
|
||||
return f + (1 if n > 1 else 0) == k;
|
||||
}
|
||||
37
Task/Almost-prime/Onyx-(wasm)/almost-prime-2.onyx
Normal file
37
Task/Almost-prime/Onyx-(wasm)/almost-prime-2.onyx
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
//+optional-semicolons
|
||||
use core {printf}
|
||||
use core.iter
|
||||
|
||||
main :: () {
|
||||
generator :=
|
||||
iter.counter(1)
|
||||
|> iter.map(k => .{
|
||||
k = k, kprimes = kprime_iter(k)->take(10)
|
||||
})
|
||||
|> iter.take(5)
|
||||
|
||||
for val in generator {
|
||||
printf("k = {}:", val.k)
|
||||
for p in val.kprimes do printf(" {}", p)
|
||||
printf("\n")
|
||||
}
|
||||
}
|
||||
|
||||
kprime_iter :: k =>
|
||||
iter.counter(2)
|
||||
|> iter.filter((i, [k]) => kprime(i, k))
|
||||
|
||||
kprime :: (n, k) => {
|
||||
f := 0
|
||||
for p in iter.counter(2) {
|
||||
if f >= k do break
|
||||
if p * p > n do break
|
||||
|
||||
while n % p == 0 {
|
||||
n /= p
|
||||
f += 1
|
||||
}
|
||||
}
|
||||
|
||||
return f + (1 if n > 1 else 0) == k
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue