在AP中查找第一个元素,该元素是Python中给定Prime的倍数

假设我们有一个AP系列的第一项(A)和共同差(d),并且我们还有素数P,我们必须找到给定AP中第一个元素的位置,该位置是AP的倍数。给定素数P。

因此,如果输入像A = 3,D = 4,P = 5,则输出将为3,因为给定AP的第四项是质数5的倍数。因此,第一项= 3,第二项= 3 + 4 = 7,第三项= 3 + 2 * 4 = 11,第四项= 3 + 3 * 4 = 15。

为了解决这个问题,我们将遵循以下步骤-

  • 定义一个函数get_pow()。这将花费x,y,p

  • 回答:= 1

  • x:= x mod p

  • 当y> 0时

    • ans:=(ans * x)mod p

    • 如果y AND 1不为零,则

    • y:= y / 2

    • x:=(x * x)mod p

    • 返回ans

    • 从主要方法中,执行以下操作-

    • A:=模组P

    • D:= D mod P

    • 如果A等于0,则

      • 返回0

    • 否则,当D等于0时,则

      • 返回-1

    • 除此以外,

      • X:= get_pow(D,P-2,P)

      • return(X *(P-A))mod P

    示例

    让我们看下面的实现以更好地理解-

    def get_pow(x, y, p) :

       ans = 1

       x = x % p

       while y > 0 :

          if y & 1 :

             ans = (ans * x) % p

          y = y >> 1

          x = (x * x) % p

       return ans

    def get_nearest(A, D, P) :

       A %= P

       D %= P

       if A == 0 :

          return 0

       elif D == 0 :

          return -1

       else :

          X = get_pow(D, P - 2, P)

          return (X * (P - A)) % P

    A = 3

    D = 4

    P = 5

    print(get_nearest(A, D, P))

    输入值

    A = 3 D = 4 P = 5

    输出结果

    3

    以上是 在AP中查找第一个元素,该元素是Python中给定Prime的倍数 的全部内容, 来源链接: utcz.com/z/322086.html

    回到顶部