2017-01-31 16:02:44 +01:00
|
|
|
|
2017-01-31 20:19:55 +01:00
|
|
|
print("la multiplication dite russe")
|
|
|
|
|
|
2017-01-31 18:47:28 +01:00
|
|
|
a = int(input("entrez a : "))
|
|
|
|
|
b = int(input("entrez b : "))
|
2017-01-31 16:02:44 +01:00
|
|
|
|
|
|
|
|
p = a
|
|
|
|
|
q = b
|
2017-01-31 20:19:55 +01:00
|
|
|
|
|
|
|
|
if q < 0:
|
|
|
|
|
p = -a
|
|
|
|
|
q = -b
|
|
|
|
|
|
|
|
|
|
#@ assert q >= 0
|
|
|
|
|
|
2017-01-31 16:02:44 +01:00
|
|
|
r = 0
|
|
|
|
|
while q > 0:
|
2017-10-09 13:32:25 +02:00
|
|
|
#@ invariant 0 <= q
|
|
|
|
|
#@ invariant r + p * q == a * b
|
2017-01-31 16:02:44 +01:00
|
|
|
#@ variant q
|
2017-10-09 13:32:25 +02:00
|
|
|
print(p, q, r)
|
2017-01-31 16:02:44 +01:00
|
|
|
if q % 2 == 1:
|
2021-06-23 17:45:21 +02:00
|
|
|
r += p
|
|
|
|
|
p += p
|
|
|
|
|
q //= 2
|
2017-10-09 13:32:25 +02:00
|
|
|
print(p, q, r)
|
2017-01-31 20:19:55 +01:00
|
|
|
print("a * b =", r)
|
2017-01-31 16:02:44 +01:00
|
|
|
#@ assert r == a * b
|