%I #23 Dec 25 2021 11:17:01
%S 0,3,44,65,83,373,575,1126,12673,25670,30268,30525,40691,48240964,
%T 63327632,298506737,369490840,1113434519,1647703600,4958115803,
%U 64657664035,86155378906,184280298746,400812644253,411723964986,714853066875,1627993432495,2607864795784
%N Nonnegative integers which produce a record maximum MD5 hash.
%C a(1) = 0; a(n) is the smallest k such that MD5(k) > MD5(a(n-1)), where integer parameters to MD5 are encoded as base-10 ASCII strings.
%C If a(1) were defined as 1 instead of 0, the sequence would begin 1, 2, 3, 44, ... and then continue in the same way.
%C If we assume that MD5 behaves like a random function from N to {0, ..., 2^128-1}, the expected length of this sequence is the harmonic number H(2^128) ~= 89.3.
%C a(31) > 10^15.
%H Ben Whitmore, <a href="/A349646/b349646.txt">Table of n, a(n) for n = 1..30</a>
%H Wikipedia, <a href="http://en.wikipedia.org/wiki/MD5">MD5</a>
%e a(5) = 83 because MD5("83") = fe9fc289c3ff0af142b6d3bead98a923_16 = 338453431832254946862081270079334951203, which is larger than all previous values MD5("0"), ..., MD5("82").
%t recordsBy[l_, P_] :=
%t Module[{max = -Infinity, x, i, recs = {}},
%t For[i = 1, i <= Length[l], i++,
%t x = P[l[[i]]];
%t If[x > max,
%t max = x;
%t AppendTo[recs, l[[i]]];
%t ]
%t ];
%t recs
%t ];
%t recordsBy[Range[1000], Hash[ToString[#], "MD5"] &]
%o (Python)
%o from hashlib import md5
%o def afind(limit):
%o record = ""
%o for k in range(limit+1):
%o hash = md5(str(k).encode('utf-8')).hexdigest()
%o if hash > record:
%o print(k, end=", ")
%o record = hash
%o afind(10**5) # _Michael S. Branicky_, Nov 24 2021
%Y Record minima: A349647.
%K nonn,base,fini,hard
%O 1,2
%A _Ben Whitmore_, Nov 23 2021