Solve this crossnumber puzzle:
A |
|
B |
|
|
C |
|
D |
E |
F |
G |
|
|
|
|
|
|
|
H |
|
I |
|
|
J |
K |
L |
|
|
|
|
|
M |
|
N |
|
|
O |
|
P |
|
|
|
|
|
|
Q |
R |
|
|
|
|
|
|
|
S |
|
|
T |
|
U |
|
V |
W |
|
|
|
|
|
|
|
X |
|
Y |
|
|
Z |
|
|
|
|
|
|
D*V = 2009 N + T + U = 2009
F2 – C = 2009 O – L3 = 2009
G + H = 2009 P – O = 2009
I / X = 2009 3Q – A = 2009
J/2 – Z/3 = 2009 R2 – B = 2009
K – E = 2009 Y2 + 2N – W = 2009
M + S/4 = 2009
No number begins with zero.
Note: This nice and ingenious puzzle (look at the symmetry of the grid) and some similar ones are © copyrighted but his author has granted permission for its use.
His site (with many interesting puzzles) I´ll mention in the official solution.
2009 is 7 * 7 * 41, so to factor into two 2-digit numbers, those two integers must be 49 and 41. The second digit of V is the first digit of X and so can't be a 9, as that would cause I to have six digits rather than 5 per I / X = 2009. So D=49 and V=41.
Similar constraints are applied within the program below:
DEFDBL A-Z
CLS
d = 49: v = 41
FOR f = 46 TO 54
c = f * f - 2009
FOR x = 10 TO 19
i = 2009 * x
FOR r = 55 TO 109
b = r * r - 2009
IF b MOD 10 = c \ 100 THEN
'dvfcxirb known now
FOR l = 20 TO 46
o = 2009 + l * l * l
p = o + 2009
IF (i \ 100) MOD 10 = p \ 10000 THEN
'dvfcxirblop known
q = 100 * ((o \ 1000) MOD 10) + 10 * (r \ 10) + (i \ 10) MOD 10
sBase = ((o \ 100) MOD 10) * 1000 + (r MOD 10) * 100 + (i MOD 10) * 10
FOR tFirst = 1 TO 9
s = sBase + tFirst
IF s MOD 4 = 0 THEN
m = 2009 - s / 4
IF m >= 100 AND m <= 999 THEN
IF ((m \ 10) MOD 10) = ((p \ 100) MOD 10) THEN
'dvfcxirblopqsm known
a = 3 * q - 2009
IF a >= 100 AND a <= 999 THEN
IF (a \ 10) MOD 10 = f \ 10 THEN
hBase = (a MOD 10) * 1000 + (i \ 10000) * 10
gBase = (f MOD 10) * 10
FOR g = gBase TO gBase + 9
h = 2009 - g
IF h \ 10 = hBase \ 10 + 10 * (g MOD 10) AND ((h \ 10) MOD 10) = i \ 10000 THEN
'dvfcxirblopqsmahg known; need zjnuektwy
kFirst = 9: kMid = p MOD 10
FOR nFirst = 2 TO 9
FOR nLast = 0 TO 9
n = 100 * nFirst + 10 * (l MOD 10) + nLast
jBase = 1000 * (c MOD 10) + kFirst * 100 + 10 * (l \ 10)
FOR j = jBase TO jBase + 8 STEP 2
z = (j / 2 - 2009) * 3
IF z >= 1000 AND z <= 9999 THEN
eBase = 90000 + 100 * (j MOD 10) + 10 * nLast
FOR et = 0 TO 9000 STEP 1000
FOR eLow = 0 TO 9
e = eBase + et + eLow
k = e + 2009
IF k < 100000 AND (k \ 1000) MOD 10 = n \ 100 AND (k \ 100) MOD 10 = p MOD 10 THEN
tBase = 100 * (s MOD 10) + z \ 1000
FOR t = tBase TO tBase + 90 STEP 10
u = 2009 - n - t
IF u >= 1000 AND u <= 9999 AND (u \ 10) MOD 10 = 4 THEN
IF ((u \ 100) MOD 10) = k MOD 10 THEN
yBase = 10 * (o MOD 10)
FOR y = yBase TO yBase + 9
w = y * y + 2 * n - 2009
IF w \ 100 = u MOD 10 AND ((w \ 10) MOD 10) = x MOD 10 AND w >= 100 AND w <= 999 THEN
PRINT "a ="; a
PRINT "b ="; b
PRINT "c ="; c
PRINT "d ="; d
PRINT "e ="; e
PRINT "f ="; f
PRINT "g ="; g
PRINT "h ="; h
PRINT "i ="; i
PRINT "j ="; j
PRINT "k ="; k
PRINT "l ="; l
PRINT "m ="; m
PRINT "n ="; n
PRINT "o ="; o
PRINT "p ="; p
PRINT "q ="; q
PRINT "r ="; r
PRINT "s ="; s
PRINT "t ="; t
PRINT "u ="; u
PRINT "v ="; v
PRINT "w ="; w
PRINT "x ="; x
PRINT "y ="; y
PRINT "z ="; z
ct = ct + 1
END IF
NEXT y
END IF
END IF
NEXT t
END IF
NEXT eLow
NEXT et
END IF
NEXT j
NEXT
NEXT
END IF
NEXT
END IF
END IF
END IF
END IF
END IF
NEXT
END IF
NEXT l
END IF
NEXT
NEXT x
NEXT f
PRINT ct
The result is:
a = 241
b = 1472
c = 295
d = 49
e = 91293
f = 48
g = 89
h = 1920
i = 24108
j = 5922
k = 93302
l = 25
m = 263
n = 359
o = 17634
p = 19643
q = 750
r = 59
s = 6984
t = 402
u = 1248
v = 41
w = 825
x = 12
y = 46
z = 2856
|
Posted by Charlie
on 2009-02-09 01:27:53 |