Almost prime: Difference between revisions

k-almost prime sequence using Odin
(k-almost prime sequence using Odin)
Line 3,208:
k = 4: 16 24 36 40 54 56 60 81 84 88
k = 5: 32 48 72 80 108 112 120 162 168 176</pre>
 
=={{header|Odin}}==
<syntaxhighlight lang="Go">
package almostprime
import "core:fmt"
main :: proc() {
i, c, k: int
for k := 1; k <= 5; k += 1 {
fmt.printf("k = %d:", k)
for i, c := 2, 0; c < 10; i += 1 {
if (kprime(i, k)) {
fmt.printf(" %v", i)
c += 1
}
}
fmt.printf("\n")
}
}
kprime :: proc(n: int, k: int) -> bool {
p, f: int = 0, 0
m := n
for p := 2; ((f < k) && (p * p <= m)); p += 1 {
for (0 == m % p) {
m /= p
f += 1
}
}
return f + (m > 1 ? 1 : 0) == k
}
</syntaxhighlight>
{{out}}
<pre>
k = 1: 2 3 5 7 11 13 17 19 23 29
k = 2: 4 6 9 10 14 15 21 22 25 26
k = 3: 8 12 18 20 27 28 30 42 44 45
k = 4: 16 24 36 40 54 56 60 81 84 88
k = 5: 32 48 72 80 108 112 120 162 168 176
</pre>
 
=={{header|Oforth}}==
37

edits