在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