自然数を表す1つの方法は、素数の指数を掛けることです。たとえば、6は2 ^ 1 * 3 ^ 1で表すことができ、50は2 ^ 1
* 5 ^
2で表すことができます(ここで^は指数を表します)。この表現における素数の数は、他の方法と比較して、この表現方法を使用するのがより短いかどうかを判断するのに役立ちます。しかし、私はこれらを手で計算したくないので、私のためにそれを行うためのプログラムが必要です。しかし、家に帰るまでプログラムを覚えておく必要があるので、できるだけ短くする必要があります。
あなたのタスク:
この数式の中にいくつの異なる素数があるかを決定するためのプログラムまたは関数を記述します。
入力:
An integer n such that 1 < n < 10^12, taken by any normal
method.
出力:
導入を概説した、入力を表すために必要な別個の素数の数。
テストケース:
24 -> 2 (2^3*3^1)
126 -> 3 (2^1*3^2*7^1)
1538493 -> 4 (3^1*11^1*23^1*2027^1)
123456 -> 3 (2^6*3^1*643^1)
これは OEIS
A001221 です。
得点:
This is code-golf,
lowest score in bytes wins!
ベストアンサー
MATL, 4 3 bytes
Luis Mendoのおかげで-1バイト
YFz
YF Exponents of prime factors
z Number of nonzeros
元の答え:
Yfun
ver Yfun
の回答です。
(Implicit input)
Yf Prime factorization
u Unique
n Numel
(Implicit output)