       Russian Peasant Multiplication / was question on how

• To: mathgroup at smc.vnet.net
• Subject: [mg131370] Russian Peasant Multiplication / was question on how
• From: "Dr. Robert Kragler" <kragler at hs-weingarten.de>
• Date: Tue, 2 Jul 2013 00:44:02 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-outx@smc.vnet.net
• Delivered-to: mathgroup-newsendx@smc.vnet.net

```On Sun, Jun 30, 2013 at 3:29 AM, <d.a.paxton at gmail.com> wrote:

Hi Dave,
in Wikipedia you will find an explicit example for the Russian Peasant
Multiplication. This algorithm can be simply programed in Mathematica :

RussianPeasantMultplication[x0_Integer,y0_Integer]:=
Module[{x,y,yS,nD },
x=x0;y=y0; yS=y;
nD=Max @ (Length /@ IntegerDigits @ {x0,y0});
If[x<0,(sgn=Sign[x];x=Abs[x];),(sgn=+1;x=x;)];
While[x>=1,(Print["x=",pf @ x,"; ","y=",pf @ y,"; ","yS=",pf @ yS ];
x=Floor[x/2];y=2y;
If[OddQ[x], yS=yS+y];)  ];
Return[sgn*yS]
]

See for example

x0=-27;y0=82;
RussianPeasantMultplication[x0,y0]

gives as output

x=     27; y=     82; yS=     82
x=     13; y=    164; yS=    246
x=      6; y=    328; yS=    246
x=      3; y=    656; yS=    902
x=      1; y=   1312; yS=   2214

Out= -2214

Regards
Robert

Robert Kragler
Email : kragler at hs-weingarten.de
URL :   http://portal.hs-weingarten.de/web/kragler

```

• Prev by Date: Re: Complex path integral wrong
• Next by Date: Re: Complex path integral wrong
• Previous by thread: Re: Russian Peasant Multiplication / was question on
• Next by thread: kernel is shutdown without an error message.