' Generates Inlaid Magic Squares of order 28
' Based on Order 4 Magic Sub Squares with Different Magic Sums
' Tested with Office 2007 under Windows 7
Sub Priem28k1()
Dim a1(750), a(49), a28(784), b1(48355), b(48355), c(49)
y = MsgBox("Locked", vbCritical, "Routine Priem28k1")
End
n1 = 0: n9 = 0: n10 = 0: k1 = 1: k2 = 1
Sheets("Klad1").Select
t1 = Timer
For j200 = 2 To 1228
s28 = Sheets("Input21").Cells(j200, 100).Value
Erase a28
For j101 = 51 To 99
j100 = Sheets("Input21").Cells(j200, j101).Value
' Define variables
Cntr3 = Sheets("Pairs7").Cells(j100, 6).Value 'Mid
s1 = 4 * Cntr3
nVar1 = Sheets("Pairs7").Cells(j100, 9).Value
For i1 = 1 To nVar1
a1(i1) = Sheets("Pairs7").Cells(j100, 9 + i1).Value
Next i1
m1 = 1: m2 = nVar1
If a1(1) = 1 Then m1 = 2: m2 = m2 - 1
Erase b1
For i1 = m1 To m2
b1(a1(i1)) = a1(i1)
Next i1
' Remove Used Primes
For i1 = 1 To 784
b1(a28(i1)) = 0
Next i1
' Generate Pan Magic Squares (4 x 4)
For j16 = m1 To m2 'a(16)
If b1(a1(j16)) = 0 Then GoTo 160
If b(a1(j16)) = 0 Then b(a1(j16)) = a1(j16): c(16) = a1(j16) Else GoTo 160
a(16) = a1(j16)
a(6) = 0.5 * s1 - a(16):
If a(6) < a1(m1) Or a(6) > a1(m2) Then GoTo 60
If b1(a(6)) = 0 Then GoTo 60
If b(a(6)) = 0 Then b(a(6)) = a(6): c(6) = a(6) Else GoTo 60
For j15 = m1 To m2 'a(15)
If b1(a1(j15)) = 0 Then GoTo 150
If b(a1(j15)) = 0 Then b(a1(j15)) = a1(j15): c(15) = a1(j15) Else GoTo 150
a(15) = a1(j15)
a(5) = 0.5 * s1 - a(15):
If a(5) < a1(m1) Or a(5) > a1(m2) Then GoTo 50
If b1(a(5)) = 0 Then GoTo 50
If b(a(5)) = 0 Then b(a(5)) = a(5): c(5) = a(5) Else GoTo 50
For j14 = m1 To m2 'a(14)
If b1(a1(j14)) = 0 Then GoTo 140
If b(a1(j14)) = 0 Then b(a1(j14)) = a1(j14): c(14) = a1(j14) Else GoTo 140
a(14) = a1(j14)
a(13) = s1 - a(14) - a(15) - a(16)
If a(13) < a1(m1) Or a(13) > a1(m2) Then GoTo 130
If b1(a(13)) = 0 Then GoTo 130
If b(a(13)) = 0 Then b(a(13)) = a(13): c(13) = a(13) Else GoTo 130
a(8) = 0.5 * s1 - a(14):
If a(8) < a1(m1) Or a(8) > a1(m2) Then GoTo 80
If b1(a(8)) = 0 Then GoTo 80
If b(a(8)) = 0 Then b(a(8)) = a(8): c(8) = a(8) Else GoTo 80
a(7) = 0.5 * s1 - a(13):
If a(7) < a1(m1) Or a(7) > a1(m2) Then GoTo 70
If b1(a(7)) = 0 Then GoTo 70
If b(a(7)) = 0 Then b(a(7)) = a(7): c(7) = a(7) Else GoTo 70
For j12 = m1 To m2 'a(12)
If b1(a1(j12)) = 0 Then GoTo 120
If b(a1(j12)) = 0 Then b(a1(j12)) = a1(j12): c(12) = a1(j12) Else GoTo 120
a(12) = a1(j12)
a(11) = s1 - a(12) - a(15) - a(16)
If a(11) < a1(m1) Or a(11) > a1(m2) Then GoTo 75
If b1(a(11)) = 0 Then GoTo 75
a(10) = a(12) - a(14) + a(16)
If a(10) < a1(m1) Or a(10) > a1(m2) Then GoTo 75
If b1(a(10)) = 0 Then GoTo 75
a(9) = -a(12) + a(14) + a(15)
If a(9) < a1(m1) Or a(9) > a1(m2) Then GoTo 75
If b1(a(9)) = 0 Then GoTo 75
a(4) = 0.5 * s1 - a(10)
If a(4) < a1(m1) Or a(4) > a1(m2) Then GoTo 75:
If b1(a(4)) = 0 Then GoTo 75
a(3) = 0.5 * s1 - a(9)
If a(3) < a1(m1) Or a(3) > a1(m2) Then GoTo 75:
If b1(a(3)) = 0 Then GoTo 75
a(2) = 0.5 * s1 - a(12)
If a(2) < a1(m1) Or a(2) > a1(m2) Then GoTo 75:
If b1(a(2)) = 0 Then GoTo 75
a(1) = 0.5 * s1 - a(11)
If a(1) < a1(m1) Or a(1) > a1(m2) Then GoTo 75:
If b1(a(1)) = 0 Then GoTo 75
' Exclude solutions with identical numbers
GoSub 800: If fl1 = 0 Then GoTo 75
n10 = n10 + 1: GoSub 750 'Assign to a28()
Erase b, c: GoTo 5 'Assign only first square
75 b(c(12)) = 0: c(12) = 0
120 Next j12
b(c(7)) = 0: c(7) = 0
70 b(c(8)) = 0: c(8) = 0
80 b(c(13)) = 0: c(13) = 0
130 b(c(14)) = 0: c(14) = 0
140 Next j14
b(c(5)) = 0: c(5) = 0
50 b(c(15)) = 0: c(15) = 0
150 Next j15
b(c(6)) = 0: c(6) = 0
60 b(c(16)) = 0: c(16) = 0
160 Next j16
' Not found
Erase b, c: n10 = 0: GoTo 2000
5
If n10 = 49 Then
GoSub 850:
If fl1 = 1 Then
n9 = n9 + 1: GoSub 660 'Print results (squares)
If n9 = 8 Then End
n10 = 0: GoTo 2000
End If
End If
Next j101
2000 n10 = 0
Next j200
t2 = Timer
t10 = Str(t2 - t1) + " sec., " + Str(n9) + " Solutions"
y = MsgBox(t10, 0, "Routine Priem28k1")
End
' Assign to a28()
750 Select Case n10
Case 1
a28(1) = a(1): a28(2) = a(2): a28(3) = a(3): a28(4) = a(4):
a28(29) = a(5): a28(30) = a(6): a28(31) = a(7): a28(32) = a(8):
a28(57) = a(9): a28(58) = a(10): a28(59) = a(11): a28(60) = a(12):
a28(85) = a(13): a28(86) = a(14): a28(87) = a(15): a28(88) = a(16):
Case 2
a28(5) = a(1): a28(6) = a(2): a28(7) = a(3): a28(8) = a(4):
a28(33) = a(5): a28(34) = a(6): a28(35) = a(7): a28(36) = a(8):
a28(61) = a(9): a28(62) = a(10): a28(63) = a(11): a28(64) = a(12):
a28(89) = a(13): a28(90) = a(14): a28(91) = a(15): a28(92) = a(16):
Case 3
a28(9) = a(1): a28(10) = a(2): a28(11) = a(3): a28(12) = a(4):
a28(37) = a(5): a28(38) = a(6): a28(39) = a(7): a28(40) = a(8):
a28(65) = a(9): a28(66) = a(10): a28(67) = a(11): a28(68) = a(12):
a28(93) = a(13): a28(94) = a(14): a28(95) = a(15): a28(96) = a(16):
Case 4
a28(13) = a(1): a28(14) = a(2): a28(15) = a(3): a28(16) = a(4):
a28(41) = a(5): a28(42) = a(6): a28(43) = a(7): a28(44) = a(8):
a28(69) = a(9): a28(70) = a(10): a28(71) = a(11): a28(72) = a(12):
a28(97) = a(13): a28(98) = a(14): a28(99) = a(15): a28(100) = a(16):
Case 5
a28(17) = a(1): a28(18) = a(2): a28(19) = a(3): a28(20) = a(4):
a28(45) = a(5): a28(46) = a(6): a28(47) = a(7): a28(48) = a(8):
a28(73) = a(9): a28(74) = a(10): a28(75) = a(11): a28(76) = a(12):
a28(101) = a(13): a28(102) = a(14): a28(103) = a(15): a28(104) = a(16):
Case 6
a28(21) = a(1): a28(22) = a(2): a28(23) = a(3): a28(24) = a(4):
a28(49) = a(5): a28(50) = a(6): a28(51) = a(7): a28(52) = a(8):
a28(77) = a(9): a28(78) = a(10): a28(79) = a(11): a28(80) = a(12):
a28(105) = a(13): a28(106) = a(14): a28(107) = a(15): a28(108) = a(16):
Case 7
a28(25) = a(1): a28(26) = a(2): a28(27) = a(3): a28(28) = a(4):
a28(53) = a(5): a28(54) = a(6): a28(55) = a(7): a28(56) = a(8):
a28(81) = a(9): a28(82) = a(10): a28(83) = a(11): a28(84) = a(12):
a28(109) = a(13): a28(110) = a(14): a28(111) = a(15): a28(112) = a(16):
Case 8
a28(113) = a(1): a28(114) = a(2): a28(115) = a(3): a28(116) = a(4):
a28(141) = a(5): a28(142) = a(6): a28(143) = a(7): a28(144) = a(8):
a28(169) = a(9): a28(170) = a(10): a28(171) = a(11): a28(172) = a(12):
a28(197) = a(13): a28(198) = a(14): a28(199) = a(15): a28(200) = a(16):
Case 9
a28(117) = a(1): a28(118) = a(2): a28(119) = a(3): a28(120) = a(4):
a28(145) = a(5): a28(146) = a(6): a28(147) = a(7): a28(148) = a(8):
a28(173) = a(9): a28(174) = a(10): a28(175) = a(11): a28(176) = a(12):
a28(201) = a(13): a28(202) = a(14): a28(203) = a(15): a28(204) = a(16):
Case 10
a28(121) = a(1): a28(122) = a(2): a28(123) = a(3): a28(124) = a(4):
a28(149) = a(5): a28(150) = a(6): a28(151) = a(7): a28(152) = a(8):
a28(177) = a(9): a28(178) = a(10): a28(179) = a(11): a28(180) = a(12):
a28(205) = a(13): a28(206) = a(14): a28(207) = a(15): a28(208) = a(16):
Case 11
a28(125) = a(1): a28(126) = a(2): a28(127) = a(3): a28(128) = a(4):
a28(153) = a(5): a28(154) = a(6): a28(155) = a(7): a28(156) = a(8):
a28(181) = a(9): a28(182) = a(10): a28(183) = a(11): a28(184) = a(12):
a28(209) = a(13): a28(210) = a(14): a28(211) = a(15): a28(212) = a(16):
Case 12
a28(129) = a(1): a28(130) = a(2): a28(131) = a(3): a28(132) = a(4):
a28(157) = a(5): a28(158) = a(6): a28(159) = a(7): a28(160) = a(8):
a28(185) = a(9): a28(186) = a(10): a28(187) = a(11): a28(188) = a(12):
a28(213) = a(13): a28(214) = a(14): a28(215) = a(15): a28(216) = a(16):
Case 13
a28(133) = a(1): a28(134) = a(2): a28(135) = a(3): a28(136) = a(4):
a28(161) = a(5): a28(162) = a(6): a28(163) = a(7): a28(164) = a(8):
a28(189) = a(9): a28(190) = a(10): a28(191) = a(11): a28(192) = a(12):
a28(217) = a(13): a28(218) = a(14): a28(219) = a(15): a28(220) = a(16):
Case 14
a28(137) = a(1): a28(138) = a(2): a28(139) = a(3): a28(140) = a(4):
a28(165) = a(5): a28(166) = a(6): a28(167) = a(7): a28(168) = a(8):
a28(193) = a(9): a28(194) = a(10): a28(195) = a(11): a28(196) = a(12):
a28(221) = a(13): a28(222) = a(14): a28(223) = a(15): a28(224) = a(16):
Case 15
a28(225) = a(1): a28(226) = a(2): a28(227) = a(3): a28(228) = a(4):
a28(253) = a(5): a28(254) = a(6): a28(255) = a(7): a28(256) = a(8):
a28(281) = a(9): a28(282) = a(10): a28(283) = a(11): a28(284) = a(12):
a28(309) = a(13): a28(310) = a(14): a28(311) = a(15): a28(312) = a(16):
Case 16
a28(229) = a(1): a28(230) = a(2): a28(231) = a(3): a28(232) = a(4):
a28(257) = a(5): a28(258) = a(6): a28(259) = a(7): a28(260) = a(8):
a28(285) = a(9): a28(286) = a(10): a28(287) = a(11): a28(288) = a(12):
a28(313) = a(13): a28(314) = a(14): a28(315) = a(15): a28(316) = a(16):
Case 17
a28(233) = a(1): a28(234) = a(2): a28(235) = a(3): a28(236) = a(4):
a28(261) = a(5): a28(262) = a(6): a28(263) = a(7): a28(264) = a(8):
a28(289) = a(9): a28(290) = a(10): a28(291) = a(11): a28(292) = a(12):
a28(317) = a(13): a28(318) = a(14): a28(319) = a(15): a28(320) = a(16):
Case 18
a28(237) = a(1): a28(238) = a(2): a28(239) = a(3): a28(240) = a(4):
a28(265) = a(5): a28(266) = a(6): a28(267) = a(7): a28(268) = a(8):
a28(293) = a(9): a28(294) = a(10): a28(295) = a(11): a28(296) = a(12):
a28(321) = a(13): a28(322) = a(14): a28(323) = a(15): a28(324) = a(16):
Case 19
a28(241) = a(1): a28(242) = a(2): a28(243) = a(3): a28(244) = a(4):
a28(269) = a(5): a28(270) = a(6): a28(271) = a(7): a28(272) = a(8):
a28(297) = a(9): a28(298) = a(10): a28(299) = a(11): a28(300) = a(12):
a28(325) = a(13): a28(326) = a(14): a28(327) = a(15): a28(328) = a(16):
Case 20
a28(245) = a(1): a28(246) = a(2): a28(247) = a(3): a28(248) = a(4):
a28(273) = a(5): a28(274) = a(6): a28(275) = a(7): a28(276) = a(8):
a28(301) = a(9): a28(302) = a(10): a28(303) = a(11): a28(304) = a(12):
a28(329) = a(13): a28(330) = a(14): a28(331) = a(15): a28(332) = a(16):
Case 21
a28(249) = a(1): a28(250) = a(2): a28(251) = a(3): a28(252) = a(4):
a28(277) = a(5): a28(278) = a(6): a28(279) = a(7): a28(280) = a(8):
a28(305) = a(9): a28(306) = a(10): a28(307) = a(11): a28(308) = a(12):
a28(333) = a(13): a28(334) = a(14): a28(335) = a(15): a28(336) = a(16):
Case 22
a28(337) = a(1): a28(338) = a(2): a28(339) = a(3): a28(340) = a(4):
a28(365) = a(5): a28(366) = a(6): a28(367) = a(7): a28(368) = a(8):
a28(393) = a(9): a28(394) = a(10): a28(395) = a(11): a28(396) = a(12):
a28(421) = a(13): a28(422) = a(14): a28(423) = a(15): a28(424) = a(16):
Case 23
a28(341) = a(1): a28(342) = a(2): a28(343) = a(3): a28(344) = a(4):
a28(369) = a(5): a28(370) = a(6): a28(371) = a(7): a28(372) = a(8):
a28(397) = a(9): a28(398) = a(10): a28(399) = a(11): a28(400) = a(12):
a28(425) = a(13): a28(426) = a(14): a28(427) = a(15): a28(428) = a(16):
Case 24
a28(345) = a(1): a28(346) = a(2): a28(347) = a(3): a28(348) = a(4):
a28(373) = a(5): a28(374) = a(6): a28(375) = a(7): a28(376) = a(8):
a28(401) = a(9): a28(402) = a(10): a28(403) = a(11): a28(404) = a(12):
a28(429) = a(13): a28(430) = a(14): a28(431) = a(15): a28(432) = a(16):
Case 25
a28(349) = a(1): a28(350) = a(2): a28(351) = a(3): a28(352) = a(4):
a28(377) = a(5): a28(378) = a(6): a28(379) = a(7): a28(380) = a(8):
a28(405) = a(9): a28(406) = a(10): a28(407) = a(11): a28(408) = a(12):
a28(433) = a(13): a28(434) = a(14): a28(435) = a(15): a28(436) = a(16):
Case 26
a28(353) = a(1): a28(354) = a(2): a28(355) = a(3): a28(356) = a(4):
a28(381) = a(5): a28(382) = a(6): a28(383) = a(7): a28(384) = a(8):
a28(409) = a(9): a28(410) = a(10): a28(411) = a(11): a28(412) = a(12):
a28(437) = a(13): a28(438) = a(14): a28(439) = a(15): a28(440) = a(16):
Case 27
a28(357) = a(1): a28(358) = a(2): a28(359) = a(3): a28(360) = a(4):
a28(385) = a(5): a28(386) = a(6): a28(387) = a(7): a28(388) = a(8):
a28(413) = a(9): a28(414) = a(10): a28(415) = a(11): a28(416) = a(12):
a28(441) = a(13): a28(442) = a(14): a28(443) = a(15): a28(444) = a(16):
Case 28
a28(361) = a(1): a28(362) = a(2): a28(363) = a(3): a28(364) = a(4):
a28(389) = a(5): a28(390) = a(6): a28(391) = a(7): a28(392) = a(8):
a28(417) = a(9): a28(418) = a(10): a28(419) = a(11): a28(420) = a(12):
a28(445) = a(13): a28(446) = a(14): a28(447) = a(15): a28(448) = a(16):
Case 29
a28(449) = a(1): a28(450) = a(2): a28(451) = a(3): a28(452) = a(4):
a28(477) = a(5): a28(478) = a(6): a28(479) = a(7): a28(480) = a(8):
a28(505) = a(9): a28(506) = a(10): a28(507) = a(11): a28(508) = a(12):
a28(533) = a(13): a28(534) = a(14): a28(535) = a(15): a28(536) = a(16):
Case 30
a28(453) = a(1): a28(454) = a(2): a28(455) = a(3): a28(456) = a(4):
a28(481) = a(5): a28(482) = a(6): a28(483) = a(7): a28(484) = a(8):
a28(509) = a(9): a28(510) = a(10): a28(511) = a(11): a28(512) = a(12):
a28(537) = a(13): a28(538) = a(14): a28(539) = a(15): a28(540) = a(16):
Case 31
a28(457) = a(1): a28(458) = a(2): a28(459) = a(3): a28(460) = a(4):
a28(485) = a(5): a28(486) = a(6): a28(487) = a(7): a28(488) = a(8):
a28(513) = a(9): a28(514) = a(10): a28(515) = a(11): a28(516) = a(12):
a28(541) = a(13): a28(542) = a(14): a28(543) = a(15): a28(544) = a(16):
Case 32
a28(461) = a(1): a28(462) = a(2): a28(463) = a(3): a28(464) = a(4):
a28(489) = a(5): a28(490) = a(6): a28(491) = a(7): a28(492) = a(8):
a28(517) = a(9): a28(518) = a(10): a28(519) = a(11): a28(520) = a(12):
a28(545) = a(13): a28(546) = a(14): a28(547) = a(15): a28(548) = a(16):
Case 33
a28(465) = a(1): a28(466) = a(2): a28(467) = a(3): a28(468) = a(4):
a28(493) = a(5): a28(494) = a(6): a28(495) = a(7): a28(496) = a(8):
a28(521) = a(9): a28(522) = a(10): a28(523) = a(11): a28(524) = a(12):
a28(549) = a(13): a28(550) = a(14): a28(551) = a(15): a28(552) = a(16):
Case 34
a28(469) = a(1): a28(470) = a(2): a28(471) = a(3): a28(472) = a(4):
a28(497) = a(5): a28(498) = a(6): a28(499) = a(7): a28(500) = a(8):
a28(525) = a(9): a28(526) = a(10): a28(527) = a(11): a28(528) = a(12):
a28(553) = a(13): a28(554) = a(14): a28(555) = a(15): a28(556) = a(16):
Case 35
a28(473) = a(1): a28(474) = a(2): a28(475) = a(3): a28(476) = a(4):
a28(501) = a(5): a28(502) = a(6): a28(503) = a(7): a28(504) = a(8):
a28(529) = a(9): a28(530) = a(10): a28(531) = a(11): a28(532) = a(12):
a28(557) = a(13): a28(558) = a(14): a28(559) = a(15): a28(560) = a(16):
Case 36
a28(561) = a(1): a28(562) = a(2): a28(563) = a(3): a28(564) = a(4):
a28(589) = a(5): a28(590) = a(6): a28(591) = a(7): a28(592) = a(8):
a28(617) = a(9): a28(618) = a(10): a28(619) = a(11): a28(620) = a(12):
a28(645) = a(13): a28(646) = a(14): a28(647) = a(15): a28(648) = a(16):
Case 37
a28(565) = a(1): a28(566) = a(2): a28(567) = a(3): a28(568) = a(4):
a28(593) = a(5): a28(594) = a(6): a28(595) = a(7): a28(596) = a(8):
a28(621) = a(9): a28(622) = a(10): a28(623) = a(11): a28(624) = a(12):
a28(649) = a(13): a28(650) = a(14): a28(651) = a(15): a28(652) = a(16):
Case 38
a28(569) = a(1): a28(570) = a(2): a28(571) = a(3): a28(572) = a(4):
a28(597) = a(5): a28(598) = a(6): a28(599) = a(7): a28(600) = a(8):
a28(625) = a(9): a28(626) = a(10): a28(627) = a(11): a28(628) = a(12):
a28(653) = a(13): a28(654) = a(14): a28(655) = a(15): a28(656) = a(16):
Case 39
a28(573) = a(1): a28(574) = a(2): a28(575) = a(3): a28(576) = a(4):
a28(601) = a(5): a28(602) = a(6): a28(603) = a(7): a28(604) = a(8):
a28(629) = a(9): a28(630) = a(10): a28(631) = a(11): a28(632) = a(12):
a28(657) = a(13): a28(658) = a(14): a28(659) = a(15): a28(660) = a(16):
Case 40
a28(577) = a(1): a28(578) = a(2): a28(579) = a(3): a28(580) = a(4):
a28(605) = a(5): a28(606) = a(6): a28(607) = a(7): a28(608) = a(8):
a28(633) = a(9): a28(634) = a(10): a28(635) = a(11): a28(636) = a(12):
a28(661) = a(13): a28(662) = a(14): a28(663) = a(15): a28(664) = a(16):
Case 41
a28(581) = a(1): a28(582) = a(2): a28(583) = a(3): a28(584) = a(4):
a28(609) = a(5): a28(610) = a(6): a28(611) = a(7): a28(612) = a(8):
a28(637) = a(9): a28(638) = a(10): a28(639) = a(11): a28(640) = a(12):
a28(665) = a(13): a28(666) = a(14): a28(667) = a(15): a28(668) = a(16):
Case 42
a28(585) = a(1): a28(586) = a(2): a28(587) = a(3): a28(588) = a(4):
a28(613) = a(5): a28(614) = a(6): a28(615) = a(7): a28(616) = a(8):
a28(641) = a(9): a28(642) = a(10): a28(643) = a(11): a28(644) = a(12):
a28(669) = a(13): a28(670) = a(14): a28(671) = a(15): a28(672) = a(16):
Case 43
a28(673) = a(1): a28(674) = a(2): a28(675) = a(3): a28(676) = a(4):
a28(701) = a(5): a28(702) = a(6): a28(703) = a(7): a28(704) = a(8):
a28(729) = a(9): a28(730) = a(10): a28(731) = a(11): a28(732) = a(12):
a28(757) = a(13): a28(758) = a(14): a28(759) = a(15): a28(760) = a(16):
Case 44
a28(677) = a(1): a28(678) = a(2): a28(679) = a(3): a28(680) = a(4):
a28(705) = a(5): a28(706) = a(6): a28(707) = a(7): a28(708) = a(8):
a28(733) = a(9): a28(734) = a(10): a28(735) = a(11): a28(736) = a(12):
a28(761) = a(13): a28(762) = a(14): a28(763) = a(15): a28(764) = a(16):
Case 45
a28(681) = a(1): a28(682) = a(2): a28(683) = a(3): a28(684) = a(4):
a28(709) = a(5): a28(710) = a(6): a28(711) = a(7): a28(712) = a(8):
a28(737) = a(9): a28(738) = a(10): a28(739) = a(11): a28(740) = a(12):
a28(765) = a(13): a28(766) = a(14): a28(767) = a(15): a28(768) = a(16):
Case 46
a28(685) = a(1): a28(686) = a(2): a28(687) = a(3): a28(688) = a(4):
a28(713) = a(5): a28(714) = a(6): a28(715) = a(7): a28(716) = a(8):
a28(741) = a(9): a28(742) = a(10): a28(743) = a(11): a28(744) = a(12):
a28(769) = a(13): a28(770) = a(14): a28(771) = a(15): a28(772) = a(16):
Case 47
a28(689) = a(1): a28(690) = a(2): a28(691) = a(3): a28(692) = a(4):
a28(717) = a(5): a28(718) = a(6): a28(719) = a(7): a28(720) = a(8):
a28(745) = a(9): a28(746) = a(10): a28(747) = a(11): a28(748) = a(12):
a28(773) = a(13): a28(774) = a(14): a28(775) = a(15): a28(776) = a(16):
Case 48
a28(693) = a(1): a28(694) = a(2): a28(695) = a(3): a28(696) = a(4):
a28(721) = a(5): a28(722) = a(6): a28(723) = a(7): a28(724) = a(8):
a28(749) = a(9): a28(750) = a(10): a28(751) = a(11): a28(752) = a(12):
a28(777) = a(13): a28(778) = a(14): a28(779) = a(15): a28(780) = a(16):
Case 49
a28(697) = a(1): a28(698) = a(2): a28(699) = a(3): a28(700) = a(4):
a28(725) = a(5): a28(726) = a(6): a28(727) = a(7): a28(728) = a(8):
a28(753) = a(9): a28(754) = a(10): a28(755) = a(11): a28(756) = a(12):
a28(781) = a(13): a28(782) = a(14): a28(783) = a(15): a28(784) = a(16):
End Select
Return
' Print results: squares a28()
660 n1 = n1 + 1
If n1 = 2 Then
n1 = 1: k1 = k1 + 29: k2 = 1
Else
If n9 > 1 Then k2 = k2 + 29
End If
Cells(k1, k2 + 1).Select
Cells(k1, k2 + 1).Font.Color = -4165632
Cells(k1, k2 + 1).Value = s28
i3 = 0
For i1 = 1 To 28
For i2 = 1 To 28
i3 = i3 + 1
Cells(k1 + i1, k2 + i2).Value = a28(i3)
Next i2
Next i1
Return
' Exclude solutions with identical numbers a()
800 fl1 = 1
For j1 = 1 To 16
a2 = a(j1)
For j2 = (1 + j1) To 16
If a2 = a(j2) Then fl1 = 0: Return
Next j2
Next j1
Return
' Exclude solutions with identical numbers a28()
850 fl1 = 1
For j1 = 1 To 784
a2 = a28(j1): If a2 = 0 Then GoTo 860
For j2 = (1 + j1) To 784
If a2 = a28(j2) Then fl1 = 0: Return
Next j2
860 Next j1
Return
End Sub