#!/bin/bash
function md5() {
echo -n "$1" | md5sum - | gawk '{print $1}'
}
it=0
while :; do
it=$[$it+1]
prev=$(md5 "$prev")
if [ "$prev" == "$best" ]; then
echo "Cycle detected"
exit
elif [ "$prev" \> "$best" ]; then
best=$prev
echo $it $prev
fi
done
(Python)
from hashlib import md5
def afind(limit):
record = hash = ""
for k in range(1, limit+1):
hash = md5(hash.encode('utf-8')).hexdigest()
if hash > record:
print(k, end=", ")
record = hash
(C#)
public Enumerable<BigInteger>
A234849()
{
yield return BigInteger.One;
var record = Convert.ToHexString(
MD5.HashData(Array.Empty<byte>())).ToLower();
var current = record;
for(var count = new BigInteger(2); ; count++)
{
current = Convert.ToHexString(
MD5.HashData(Encoding.UTF8.GetBytes(current))).ToLower();
var compareResult = string.Compare(current, record);
if (compareResult >= 0)
{
if(compareResult == 0)
{
yield break; // cycle detected
}
yield return count;
record = current;
}
}