Elementare Zahlentheorie: Blatt 2

Aufgabe 1

u = Mod(2222222222222298763, 111111111111111111111112)
print u^(-1) * 1111111111111111111

print (16 + 1000) % 24, "Uhr"
print ["Mo", "Di", "Mit", "Do", "Fr", "Sa", "So"][(2 + 1041) % 7]

Aufgabe 2

for a in range(1,23):
    for b in range(1,23):
        # %2d teilt Sage mit, dass wir eine ganze Zahl ausgeben möchten, die
        # genau 2 Zeichen lang ist.  Bei einstelligen Zahlen wird mit
        # Leerzeichen aufgefüllt.  Das darauffolgende Prozentzeichen sagt, dass
        # der Parameter rechts für %2d eingesetzt werden soll.  Das Komma am
        # Ende bewirkt, dass Sage den sonst üblichen Zeilenumbruch unterdrückt.
        print "%2c" % (a*b % 23),
    # Damit das ganze eine Tabelle wird brauchen wir aber doch noch ein paar
    # Zeilenumbrüche.
    print ""

Aufgabe 3

Diese Aufgabe kann natürlich mit dem Chinesischen Restsatz gelöst werden. In Sage geht dies folgendermaßen:

x = crt([1,1,1,1,1,0], [2..7]); print x
# Überprüfen wir noch kurz das Ergebnis:
assert(x%2==1 and x%3==1 and x%4==1 and x%5==1 and x%6==1 and x%7==0)