驚くべきことに、数値が準素数であるかどうかを判断するためのコードゴルフの質問があるとは思わない。
半素数とは、2つの(必ずしも別個ではない)素数の積である自然数です。
十分にシンプルですが、非常に重要な概念です。
正の整数を指定して、それがセミプライムかどうかを判断します。出力は、trueまたはfalseの値に対して同じ出力を提供する限り、どのような形式でもかまいません。また、パフォーマンスやオーバーフローが問題にならないほど入力が適度に小さいと仮定することもできます。
テストケース:
input -> output
1 -> false
2 -> false
3 -> false
4 -> true
6 -> true
8 -> false
30 -> false (5 * 3 * 2), note it must be EXACTLY 2 (non-distinct) primes
49 -> true (7 * 7) still technically 2 primes
95 -> true
25195908475657893494027183240048398571429282126204032027777137836043662020707595556264018525880784406918290641249515082189298559149176184502808489120072844992687392807287776735971418347270261896375014971824691165077613379859095700097330459748808428401797429100642458691817195118746121515172654632282216869987549182422433637259085141865462043576798423387184774447920739934236584823824281198163815010674810451660377306056201619676256133844143603833904414952634432190114657544454178424020924616515723350778707749817125772467962926386356373289912154831438167899885040445364023527381951378636564391212010397122822120720357
-> true, and go call someone, you just cracked RSA-2048
これはcode-golfなので、標準のルールが適用されます!