Bereitschaftsbeitrag

Zur Front

10. Januar 2019

2^(d1) = 1 mod (d0)

main    move.l  #%101111,d0
        moveq.l #-1,d1
        move.l  d0,d2
.loop   addq.l  #1,d1
        lsr.l   #1,d2
        bcs.s   .loop
        beq.s   .end
        subq.l  #1,d1
        add.l   d2,d2

        add.l   d0,d2   
        bra.s   .loop
.end    rts


(Motorola MC68000 Assembler)

Ein paar Beispiele:
  • 210 = 1 mod 11,
  • 211 = 1 mod 23,
  • 223 = 1 mod 47,
  • 236 = 1 mod 95,
  • 295 = 1 mod 191,
  • 2191 = 1 mod 383,
  • 2348 = 1 mod 767,
  • 2204 = 1 mod 1535,
  • 21476 = 1 mod 3071,
  • 23071 = 1 mod 6143;
  • 212 = 1 mod 27,
  • 220 = 1 mod 55,
  • 236 = 1 mod 111,
  • 237 = 1 mod 223,
  • 2148 = 1 mod 447,
  • 2356 = 1 mod 895,
  • 2198 = 1 mod 1791,
  • 21791 = 1 mod 3583,
  • 22388 = 1 mod 7167,
  • 21380 = 1 mod 14335.
Interessant, wie selten eine Primzahl hier zu einer Ordnung von 2 unter (p-1)/2 führt (nur ein einziges Mal). Und auch interessant, wie kurz das Programm nur sein muß (eine Zeile kürzer noch als angegeben).

Labels: ,