Semiprime: Difference between revisions

427 bytes added ,  10 years ago
no edit summary
(Added zkl)
No edit summary
Line 223:
[f1, f2] -> f1 * f2 == n
otherwise -> False</lang>
 
=={{header|Icon}} and {{header|Unicon}}==
 
Works in both languages:
<lang unicon>link "factors"
 
procedure main(A)
every nf := semiprime(n := !A) do write(n," = ",nf[1]," * ",nf[2])
end
 
procedure semiprime(n) # Succeeds and produces the factors only if n is semiprime.
return (2 = *(nf := factors(n)), nf)
end</lang>
 
Sample output:
<pre>
->semiprime 1676 1677 1678 1679 1680
1678 = 2 * 839
1679 = 23 * 73
->
</pre>
 
=={{header|J}}==