11 lines
258 B
Text
11 lines
258 B
Text
func is_semiprime(n, B=1e4) {
|
|
|
|
with (n.trial_factor(B)) { |f|
|
|
return false if (f.len > 2)
|
|
return f.all { .is_prime } if (f.len == 2)
|
|
}
|
|
|
|
n.factor.len == 2
|
|
}
|
|
|
|
say [2,4,99,100,1679,32768,1234567,9876543,900660121].grep(is_semiprime)
|