Semiprime: Difference between revisions

(→‎{{header|Ruby}}: sum takes a block nowadays)
Line 262:
yes- 1678 - 2*839
yes- 1679 - 23*73</Pre>
=={{header|AWK}}==
<lang AWK>
# syntax: GAWK -f SEMIPRIME.AWK
BEGIN {
main(0,100)
main(1675,1680)
exit(0)
}
function main(lo,hi, i) {
printf("%d-%d:",lo,hi)
for (i=lo; i<=hi; i++) {
if (is_semiprime(i)) {
printf(" %d",i)
}
}
printf("\n")
}
function is_semiprime(n, i,nf) {
nf = 0
for (i=2; i<=n; i++) {
while (n % i == 0) {
if (nf == 2) {
return(0)
}
nf++
n /= i
}
}
return(nf == 2)
}
</lang>
{{out}}
<pre>
0-100: 4 6 9 10 14 15 21 22 25 26 33 34 35 38 39 46 49 51 55 57 58 62 65 69 74 77 82 85 86 87 91 93 94 95
1675-1680: 1678 1679
</pre>
 
=={{header|Bracmat}}==
477

edits