Enigmatic Code

Programming Enigma Puzzles

Enigma 1666: Siblings to infinity

From New Scientist #2832, 1st October 2011 [link]

ROY and MARY are twins. They agree that life is just DANDY, according to the equation shown.

They even like MONDAY, which represents which six digits?


One response to “Enigma 1666: Siblings to infinity

  1. Jim Randell 3 December 2011 at 11:15 pm

    The following Python code runs in 60ms.

    # ROY / MARY = 0.DANDY...
    # hence: 99999 x ROY = MARY x DANDY
    # note: the final digit of the product is Y x Y and 9 x Y, so: Y is 0, 4, 5, 9
    from enigma import irange, concat, printf
    for R in irange(1, 9):
      for O in irange(0, 9):
        for Y in (0, 4, 5, 9):
          ROY = int(concat(R, O, Y))
          x = 99999 * ROY
          for M in irange(1, 9):
            for A in irange(0, 9):
              MARY = int(concat(M, A, R, Y))
              (d, r) = divmod(x, MARY)
              if r > 0: continue
              DANDY = '{d:05d}'.format(d=d)
              if DANDY[0] != DANDY[3]: continue
              if int(DANDY[1]) != A: continue
              if int(DANDY[4]) != Y: continue
              MONDAY = concat(M, O, DANDY[2:4], A, Y)
              printf("MONDAY={MONDAY} [{ROY}/{MARY}={f}]", f=float(ROY)/float(MARY))

    Solution: MONDAY = 257149.

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: