gcd

paddle. gcd ( x, y, name=None ) [source]

Computes the element-wise greatest common divisor (GCD) of input |x| and |y|. Both x and y must have integer types.

Note

gcd(0,0)=0, gcd(0, y)=|y|

If x.shape != y.shape, they must be broadcastable to a common shape (which becomes the shape of the output).

Parameters
  • x (Tensor) – An N-D Tensor, the data type is int32, int64.

  • y (Tensor) – An N-D Tensor, the data type is int32, int64.

  • name (str, optional) – Name for the operation (optional, default is None). For more information, please refer to Name.

Returns

An N-D Tensor, the data type is the same with input.

Return type

out (Tensor)

Examples

import paddle

x1 = paddle.to_tensor(12)
x2 = paddle.to_tensor(20)
paddle.gcd(x1, x2)
# Tensor(shape=[], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
#        4)

x3 = paddle.arange(6)
paddle.gcd(x3, x2)
# Tensor(shape=[6], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
#        [20, 1 , 2 , 1 , 4 , 5])

x4 = paddle.to_tensor(0)
paddle.gcd(x4, x2)
# Tensor(shape=[], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
#        20)

paddle.gcd(x4, x4)
# Tensor(shape=[], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
#        0)

x5 = paddle.to_tensor(-20)
paddle.gcd(x1, x5)
# Tensor(shape=[], dtype=int64, place=CUDAPlace(0), stop_gradient=True,
#        4)