Le challenge consiste a retrouver le début du code python3 dont voici les 3 dernières lignes:
print("%s * %s = %s"%(m2,x,m2*x)) print("%s * %s = %s"%(m3,x,m3*x)) print("%s * %s = %s"%(m7,x,m7*x))
Quand on l'exécute, il affiche :
2 * 142 = 151 3 * 142 = 25 7 * 142 = 188
NB: Le code python complet compte moins de 10 lignes !
Et il ne s'agit pas de surcharger l'opérateur * comme la proposition ci-dessous.
On doit avoir une vrai multiplication, par exemple: 0*142=0.
class strange_number: def __init__(self, value): self.i = value def __mul__(self, other): return 151 if self.i == 2 else 25 if self.i == 3 else 188 def __repr__(self): return str(self.i) x, m2, m3, m7 = strange_number(142), strange_number(2), strange_number(3), strange_number(7) print("%s * %s = %s"%(m2,x,m2*x)) print("%s * %s = %s"%(m3,x,m3*x)) print("%s * %s = %s"%(m7,x,m7*x))