Data update

This commit is contained in:
Ingy döt Net 2024-10-16 18:07:41 -07:00
parent 81fd053722
commit 52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions

View file

@ -0,0 +1,25 @@
function egyptian_divmod(dividend, divisor: integer): (integer, integer);
begin
assert(divisor <> 0);
var pwrs := |1|;
var dbls := |divisor|;
while dbls.Last <= dividend do
begin
pwrs := pwrs + |pwrs.Last * 2|;
dbls := dbls + |pwrs.last * divisor|;
end;
var (ans, accum) := (0, 0);
for var i := pwrs.Length - 1 to 0 step -1 do
if accum + dbls[i] <= dividend then
begin
accum += dbls[i];
ans += pwrs[i];
end;
result := (ans, abs(accum - dividend));
end;
begin
var (dividend, divisor) := (580, 34);
var (quotient, remainder) := egyptian_divmod(dividend, divisor);
println(dividend, 'divided by', divisor, 'using the Egyption method is', quotient, 'remainder', remainder);
end.