素数除以 PARI/GP 的最高次幂

Highest power of prime dividing a number with PARI/GP

如何找到给定素数 p 将数字 N 除以 PARI/GP 的最高次方?

E. G。如果我们有 p = 7N = 3087 我们得到 e = 3p^e | Np^(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;
}