素数除以 PARI/GP 的最高次幂
Highest power of prime dividing a number with PARI/GP
如何找到给定素数 p
将数字 N
除以 PARI/GP 的最高次方?
E. G。如果我们有 p = 7
和 N = 3087
我们得到 e = 3
和 p^e | N
但 p^(e+1)
不除 N
.
我想避免对数字 N
进行全因式分解。
使用valuation
命令,像这样:
valuation(3087, 7)
这不会计算数字的因式分解。
或者,您可以编写自己的函数:
val(n, p)=
{
if(n==0, return(+oo));
my(e);
while(n%p==0,
n /= p;
e++
);
e;
}
如何找到给定素数 p
将数字 N
除以 PARI/GP 的最高次方?
E. G。如果我们有 p = 7
和 N = 3087
我们得到 e = 3
和 p^e | N
但 p^(e+1)
不除 N
.
我想避免对数字 N
进行全因式分解。
使用valuation
命令,像这样:
valuation(3087, 7)
这不会计算数字的因式分解。
或者,您可以编写自己的函数:
val(n, p)=
{
if(n==0, return(+oo));
my(e);
while(n%p==0,
n /= p;
e++
);
e;
}