Skip to content

Instantly share code, notes, and snippets.

@Werkov
Last active January 15, 2025 00:35
Show Gist options
  • Save Werkov/3235b9dc8701eec39c3c3b59f2ccf465 to your computer and use it in GitHub Desktop.
Save Werkov/3235b9dc8701eec39c3c3b59f2ccf465 to your computer and use it in GitHub Desktop.
from random import randint
def sag(n):
digits = ['Nul', 'ein', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun']
zehns = ['zehn', 'elf', 'zwölf', 'dreizehn', 'vierzehn', 'fünfzehn', 'sechszehn', 'siebzehn', 'achtzehn', 'neunzehn']
zigs = ['', 'zehn', 'zwanzig', 'dreißig', 'vierzig', 'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig']
if n < 0:
return 'minus {}'.format(sag(-n))
if n < 10:
return digits[n]
if n < 20:
return zehns[n - 10]
if n < 100:
if n % 10 == 0:
return zigs[n // 10]
return '{}und{}'.format(sag(n % 10), zigs[n // 10])
res = []
for dat in [
(100, ''),
(10, 'hundert'),
(1000, 'tausend'),
]:
ordnung, name = dat
if n % ordnung > 0:
res.append('{}{}'.format(sag(n % ordnung), name))
n = n // ordnung
for dat in [
('Million', 'en', 'm'),
('Milliarde', 'n', 'f'),
('Billion', 'en', 'm'),
('Billiarde', 'n', 'f'),
('Trillion', 'en', 'm'),
('Trilliarde', 'n', 'f'),
('Quadrillion', 'en', 'm')
]:
if n == 0:
break
wort, endung, g = dat
mil = n % 1000
if mil > 0:
res.append('{}{} {}{} '.format(
sag(mil), 'e' if (g == 'f' and mil == 1) else '',
wort, endung if mil > 1 else ''
))
n //= 1000
if n > 0:
res.append('mehr als ')
return ''.join(reversed(res))
def konsonanten(w):
return sum(1 for c in w.lower() if c in set('bcdfghjklmnpqrstvwxz'))
# for e in range(20):
# n = 2 * (3**e)
# print(n, sag(n), konsonanten(n))
n = 60466176
en_sag = 'sixty million four hundred sixty-six thousand one hundred seventy-six'
print(n, sag(n), konsonanten(sag(n)), len(sag(n)))
print(n, en_sag, konsonanten(en_sag), len(sag(n)))
for x in range(14, 20000):
A = (x - 14) ** 10
if x == konsonanten(sag(A)):
print("x={}, A={}\n{} mit {} Konsonanten".format(x, format(A, ',').replace(',', ' '), sag(A), konsonanten(sag(A))))
# print("^^^^^")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment