在Python中找到1的个数除以m后的余数的程序
假设我们有两个数字n和m。我们需要找到n个1除以m后的余数。
所以,如果输入是n = 4,m = 27,则输出将为4,因为1111 mod 27 = 4。
为了解决这个问题,我们将执行以下步骤−
定义一个带有x、n、m参数的函数util()。
- y:=1
- 当n > 0时,执行以下操作
- 如果n是奇数,则
- y:= (y * x) mod m
- x:= (x * x) mod m
- n:= n/2的地板值
- 如果n是奇数,则
- 返回y
从主方法返回floor((util(10, n, 9 * m) / 9))
示例
让我们看一下以下实现以更好地理解−
def util(x, n, m) :
y = 1
while n > 0 :
if n & 1 :
y = (y * x) % m
x = (x * x) % m
n >>= 1
return y
def solve(n, m):
return util(10, n, 9 * m) // 9
n = 4
m = 27
print(solve(n, m))
输入
4, 27
输出
4