Cody

# Problem 1087. Magic is simple (for beginners)

Solution 996008

Submitted on 5 Oct 2016 by Massimo Zanetti
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
n = 3; y_correct = 15; assert(isequal(magic_sum(n),y_correct))

M = 8 1 6 3 5 7 4 9 2

2   Pass
n = 5; y_correct = 65; assert(isequal(magic_sum(n),y_correct))

M = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

3   Pass
n = 7; y_correct = 175; assert(isequal(magic_sum(n),y_correct))

M = 30 39 48 1 10 19 28 38 47 7 9 18 27 29 46 6 8 17 26 35 37 5 14 16 25 34 36 45 13 15 24 33 42 44 4 21 23 32 41 43 3 12 22 31 40 49 2 11 20

4   Pass
n = 8; y_correct = 260; assert(isequal(magic_sum(n),y_correct))

M = 64 2 3 61 60 6 7 57 9 55 54 12 13 51 50 16 17 47 46 20 21 43 42 24 40 26 27 37 36 30 31 33 32 34 35 29 28 38 39 25 41 23 22 44 45 19 18 48 49 15 14 52 53 11 10 56 8 58 59 5 4 62 63 1

5   Pass
n = 20; y_correct = 4010; assert(isequal(magic_sum(n),y_correct))

M = 400 2 3 397 396 6 7 393 392 10 11 389 388 14 15 385 384 18 19 381 21 379 378 24 25 375 374 28 29 371 370 32 33 367 366 36 37 363 362 40 41 359 358 44 45 355 354 48 49 351 350 52 53 347 346 56 57 343 342 60 340 62 63 337 336 66 67 333 332 70 71 329 328 74 75 325 324 78 79 321 320 82 83 317 316 86 87 313 312 90 91 309 308 94 95 305 304 98 99 301 101 299 298 104 105 295 294 108 109 291 290 112 113 287 286 116 117 283 282 120 121 279 278 124 125 275 274 128 129 271 270 132 133 267 266 136 137 263 262 140 260 142 143 257 256 146 147 253 252 150 151 249 248 154 155 245 244 158 159 241 240 162 163 237 236 166 167 233 232 170 171 229 228 174 175 225 224 178 179 221 181 219 218 184 185 215 214 188 189 211 210 192 193 207 206 196 197 203 202 200 201 199 198 204 205 195 194 208 209 191 190 212 213 187 186 216 217 183 182 220 180 222 223 177 176 226 227 173 172 230 231 169 168 234 235 165 164 238 239 161 160 242 243 157 156 246 247 153 152 250 251 149 148 254 255 145 144 258 259 141 261 139 138 264 265 135 134 268 269 131 130 272 273 127 126 276 277 123 122 280 281 119 118 284 285 115 114 288 289 111 110 292 293 107 106 296 297 103 102 300 100 302 303 97 96 306 307 93 92 310 311 89 88 314 315 85 84 318 319 81 80 322 323 77 76 326 327 73 72 330 331 69 68 334 335 65 64 338 339 61 341 59 58 344 345 55 54 348 349 51 50 352 353 47 46 356 357 43 42 360 361 39 38 364 365 35 34 368 369 31 30 372 373 27 26 376 377 23 22 380 20 382 383 17 16 386 387 13 12 390 391 9 8 394 395 5 4 398 399 1

6   Pass
n = 100; y_correct = 500050; assert(isequal(magic_sum(n),y_correct))

M = Columns 1 through 14 10000 2 3 9997 9996 6 7 9993 9992 10 11 9989 9988 14 101 9899 9898 104 105 9895 9894 108 109 9891 9890 112 113 9887 201 9799 9798 204 205 9795 9794 208 209 9791 9790 212 213 9787 9700 302 303 9697 9696 306 307 9693 9692 310 311 9689 9688 314 9600 402 403 9597 9596 406 407 9593 9592 410 411 9589 9588 414 501 9499 9498 504 505 9495 9494 508 509 9491 9490 512 513 9487 601 9399 9398 604 605 9395 9394 608 609 9391 9390 612 613 9387 9300 702 703 9297 9296 706 707 9293 9292 710 711 9289 9288 714 9200 802 803 9197 9196 806 807 9193 9192 810 811 9189 9188 814 901 9099 9098 904 905 9095 9094 908 909 9091 9090 912 913 9087 1001 8999 8998 1004 1005 8995 8994 1008 1009 8991 8990 1012 1013 8987 8900 1102 1103 8897 8896 1106 1107 8893 8892 1110 1111 8889 8888 1114 8800 1202 1203 8797 8796 1206 1207 8793 8792 1210 1211 8789 8788 1214 1301 8699 8698 1304 1305 8695 8694 1308 1309 8691 8690 1312 1313 8687 1401 8599 8598 1404 1405 8595 8594 1408 1409 8591 8590 1412 1413 8587 8500 1502 1503 8497 8496 1506 1507 8493 8492 1510 1511 8489 8488 1514 8400 1602 1603 8397 8396 1606 1607 8393 8392 1610 1611 8389 8388 1614 1701 8299 8298 1704 1705 8295 8294 1708 1709 8291 8290 1712 1713 8287 1801 8199 8198 1804 1805 8195 8194 1808 1809 8191 8190 1812 1813 8187 8100 1902 1903 8097 8096 1906 1907 8093 8092 1910 1911 8089 8088 1914 8000 2002 2003 7997 7996 2006 2007 7993 7992 2010 2011 7989 7988 2014 2101 7899 7898 2104 2105 7895 7894 2108 2109 7891 7890 2112 2113 7887 2201 7799 7798 2204 2205 7795 7794 2208 2209 7791 7790 2212 2213 7787 7700 2302 2303 7697 7696 2306 2307 7693 7692 2310 2311 7689 7688 2314 7600 2402 2403 7597 7596 2406 2407 7593 7592 2410 2411 7589 7588 2414 2501 7499 7498 2504 2505 7495 7494 2508 2509 7491 7490 2512 2513 7487 2601 7399 7398 2604 2605 7395 7394 2608 2609 7391 7390 2612 2613 7387 7300 2702 2703 7297 7296 2706 2707 7293 7292 2710 2711 7289 7288 2714 7200 2802 2803 7197 7196 2806 2807 7193 7192 2810 2811 7189 7188 2814 2901 7099 7098 2904 2905 7095 7094 2908 2909 7091 7090 2912 2913 7087 3001 6999 6998 3004 3005 6995 6994 3008 3009 6991 6990 3012 3013 6987 6900 3102 3103 6897 6896 3106 3107 6893 6892 3110 3111 6889 6888 3114 6800 3202 3203 6797 6796 3206 3207 6793 6792 3210 3211 6789 6788 3214 3301 6699 6698 3304 3305 6695 6694 3308 3309 6691 6690 3312 3313 6687 3401 6599 6598 3404 3405 6595 6594 3408 3409 6591 6590 3412 3413 6587 6500 3502 3503 6497 6496 3506 3507 6493 6492 3510 3511 6489 6488 3514 6400 3602 3603 6397 6396 3606 3607 6393 6392 3610 3611 6389 6388 3614 3701 6299 6298 3704 3705 6295 6294 3708 3709 6291 6290 3712 3713 6287 3801 6199 6198 3804 3805 6195 6194 3808 3809 6191 6190 3812 3813 6187 6100 3902 3903 6097 6096 3906 3907 6093 6092 3910 3911 6089 6088 3914 6000 4002 4003 5997 5996 4006 4007 5993 5992 4010 4011 5989 5988 4014 4101 5899 5898 4104 4105 5895 5894 4108 4109 5891 5890 4112 4113 5887 4201 5799 5798 4204 4205 5795 5794 4208 4209 5791 5790 4212 4213 5787 5700 4302 4303 5697 5696 4306 4307 5693 5692 4310 4311 5689 5688 4314 5600 4402 4403 5597 5596 4406 4407 5593 5592 4410 4411 5589 5588 4414 4501 5499 5498 4504 4505 5495 5494 4508 4509 5491 5490 4512 4513 5487 4601 5399 5398 4604 4605 5395 5394 4608 4609 5391 5390 4612 4613 5387 5300 4702 4703 5297 5296 4706 4707 5293 5292 4710 4711 5289 5288 4714 5200 4802 4803 5197 5196 4806 4807 5193 5192 4810 4811 5189 5188 4814 4901 5099 5098 4904 4905 5095 5094 4908 4909 5091 5090 4912 4913 5087 5001 4999 4998 5004 5005 4995 4994 5008 5009 4991 4990 5012 5013 4987 4900 5102 5103 4897 4896 5106 5107 4893 4892 5110 5111 4889 4888 5114 4800 5202 5203 4797 4796 5206 5207 4793 4792 5210 5211 4789 4788 5214 5301 4699 4698 5304 5305 4695 4694 5308 5309 4691 4690 5312 5313 4687 5401 4599 4598 5404 5405 4595 4594 5408 5409 4591 4590 5412 5413 4587 4500 5502 5503 4497 4496 5506 5507 4493 4492 5510 5511 4489 4488 5514 4400 5602 5603 4397 4396 5606 5607 4393 4392 5610 5611 4389 4388 5614 5701 4299 4298 5704 5705 4295 4294 5708 5709 4291 4290 5712 5713 4287 5801 4199 4198 5804 5805 4195 4194 5808 5809 4191 4190 5812 5813 4187 ...

7   Pass
n = 200; y_correct = 4000100; assert(isequal(magic_sum(n),y_correct))

M = Columns 1 through 14 40000 2 3 39997 39996 6 7 39993 39992 10 11 39989 39988 14 201 39799 39798 204 205 39795 39794 208 209 39791 39790 212 213 39787 401 39599 39598 404 405 39595 39594 408 409 39591 39590 412 413 39587 39400 602 603 39397 39396 606 607 39393 39392 610 611 39389 39388 614 39200 802 803 39197 39196 806 807 39193 39192 810 811 39189 39188 814 1001 38999 38998 1004 1005 38995 38994 1008 1009 38991 38990 1012 1013 38987 1201 38799 38798 1204 1205 38795 38794 1208 1209 38791 38790 1212 1213 38787 38600 1402 1403 38597 38596 1406 1407 38593 38592 1410 1411 38589 38588 1414 38400 1602 1603 38397 38396 1606 1607 38393 38392 1610 1611 38389 38388 1614 1801 38199 38198 1804 1805 38195 38194 1808 1809 38191 38190 1812 1813 38187 2001 37999 37998 2004 2005 37995 37994 2008 2009 37991 37990 2012 2013 37987 37800 2202 2203 37797 37796 2206 2207 37793 37792 2210 2211 37789 37788 2214 37600 2402 2403 37597 37596 2406 2407 37593 37592 2410 2411 37589 37588 2414 2601 37399 37398 2604 2605 37395 37394 2608 2609 37391 37390 2612 2613 37387 2801 37199 37198 2804 2805 37195 37194 2808 2809 37191 37190 2812 2813 37187 37000 3002 3003 36997 36996 3006 3007 36993 36992 3010 3011 36989 36988 3014 36800 3202 3203 36797 36796 3206 3207 36793 36792 3210 3211 36789 36788 3214 3401 36599 36598 3404 3405 36595 36594 3408 3409 36591 36590 3412 3413 36587 3601 36399 36398 3604 3605 36395 36394 3608 3609 36391 36390 3612 3613 36387 36200 3802 3803 36197 36196 3806 3807 36193 36192 3810 3811 36189 36188 3814 36000 4002 4003 35997 35996 4006 4007 35993 35992 4010 4011 35989 35988 4014 4201 35799 35798 4204 4205 35795 35794 4208 4209 35791 35790 4212 4213 35787 4401 35599 35598 4404 4405 35595 35594 4408 4409 35591 35590 4412 4413 35587 35400 4602 4603 35397 35396 4606 4607 35393 35392 4610 4611 35389 35388 4614 35200 4802 4803 35197 35196 4806 4807 35193 35192 4810 4811 35189 35188 4814 5001 34999 34998 5004 5005 34995 34994 5008 5009 34991 34990 5012 5013 34987 5201 34799 34798 5204 5205 34795 34794 5208 5209 34791 34790 5212 5213 34787 34600 5402 5403 34597 34596 5406 5407 34593 34592 5410 5411 34589 34588 5414 34400 5602 5603 34397 34396 5606 5607 34393 34392 5610 5611 34389 34388 5614 5801 34199 34198 5804 5805 34195 34194 5808 5809 34191 34190 5812 5813 34187 6001 33999 33998 6004 6005 33995 33994 6008 6009 33991 33990 6012 6013 33987 33800 6202 6203 33797 33796 6206 6207 33793 33792 6210 6211 33789 33788 6214 33600 6402 6403 33597 33596 6406 6407 33593 33592 6410 6411 33589 33588 6414 6601 33399 33398 6604 6605 33395 33394 6608 6609 33391 33390 6612 6613 33387 6801 33199 33198 6804 6805 33195 33194 6808 6809 33191 33190 6812 6813 33187 33000 7002 7003 32997 32996 7006 7007 32993 32992 7010 7011 32989 32988 7014 32800 7202 7203 32797 32796 7206 7207 32793 32792 7210 7211 32789 32788 7214 7401 32599 32598 7404 7405 32595 32594 7408 7409 32591 32590 7412 7413 32587 7601 32399 32398 7604 7605 32395 32394 7608 7609 32391 32390 7612 7613 32387 32200 7802 7803 32197 32196 7806 7807 32193 32192 7810 7811 32189 32188 7814 32000 8002 8003 31997 31996 8006 8007 31993 31992 8010 8011 31989 31988 8014 8201 31799 31798 8204 8205 31795 31794 8208 8209 31791 31790 8212 8213 31787 8401 31599 31598 8404 8405 31595 31594 8408 8409 31591 31590 8412 8413 31587 31400 8602 8603 31397 31396 8606 8607 31393 31392 8610 8611 31389 31388 8614 31200 8802 8803 31197 31196 8806 8807 31193 31192 8810 8811 31189 31188 8814 9001 30999 30998 9004 9005 30995 30994 9008 9009 30991 30990 9012 9013 30987 9201 30799 30798 9204 9205 30795 30794 9208 9209 30791 30790 9212 9213 30787 30600 9402 9403 30597 30596 9406 9407 30593 30592 9410 9411 30589 30588 9414 30400 9602 9603 30397 30396 9606 9607 30393 30392 9610 9611 30389 30388 9614 9801 30199 30198 9804 9805 30195 30194 9808 9809 30191 30190 9812 9813 30187 10001 29999 29998 10004 10005 29995 29994 10008 10009 29991 29990 10012 10013 29987 29800 10202 10203 29797 29796 10206 10207 29793 29792 10210 10211 29789 29788 10214 29600 10402 10403 29597 29596 10406 10407 29593 29592 10410 10411 29589 29588 10414 10601 29399 29398 10604 10605 29395 29394 10608 10609 29391 29390 10612 10613 29387 10801 29199 29198 10804 10805 29195 29194 10808 10809 29191 29190 10812 10813 29187 29000 11002 11003 28997 28996 11006 11007 28993 28992 11010 11011 28989 28988 11014 28800 11202 11203 28797 28796 11206 11207 28793 28792 11210 11211 28789 28788 11214 11401 28599 28598 11404 11405 28595 28594 11408 11409 28591 28590 11412 11413 28587 11601 28399 28398 11604 11605 28395 28394 11608 11609 28391 28390 11612 11613 28387 ...

8   Pass
n = 1000; y_correct = 500000500; assert(isequal(magic_sum(n),y_correct))

M = Columns 1 through 14 1000000 2 3 999997 999996 6 7 999993 999992 10 11 999989 999988 14 1001 998999 998998 1004 1005 998995 998994 1008 1009 998991 998990 1012 1013 998987 2001 997999 997998 2004 2005 997995 997994 2008 2009 997991 997990 2012 2013 997987 997000 3002 3003 996997 996996 3006 3007 996993 996992 3010 3011 996989 996988 3014 996000 4002 4003 995997 995996 4006 4007 995993 995992 4010 4011 995989 995988 4014 5001 994999 994998 5004 5005 994995 994994 5008 5009 994991 994990 5012 5013 994987 6001 993999 993998 6004 6005 993995 993994 6008 6009 993991 993990 6012 6013 993987 993000 7002 7003 992997 992996 7006 7007 992993 992992 7010 7011 992989 992988 7014 992000 8002 8003 991997 991996 8006 8007 991993 991992 8010 8011 991989 991988 8014 9001 990999 990998 9004 9005 990995 990994 9008 9009 990991 990990 9012 9013 990987 10001 989999 989998 10004 10005 989995 989994 10008 10009 989991 989990 10012 10013 989987 989000 11002 11003 988997 988996 11006 11007 988993 988992 11010 11011 988989 988988 11014 988000 12002 12003 987997 987996 12006 12007 987993 987992 12010 12011 987989 987988 12014 13001 986999 986998 13004 13005 986995 986994 13008 13009 986991 986990 13012 13013 986987 14001 985999 985998 14004 14005 985995 985994 14008 14009 985991 985990 14012 14013 985987 985000 15002 15003 984997 984996 15006 15007 984993 984992 15010 15011 984989 984988 15014 984000 16002 16003 983997 983996 16006 16007 983993 983992 16010 16011 983989 983988 16014 17001 982999 982998 17004 17005 982995 982994 17008 17009 982991 982990 17012 17013 982987 18001 981999 981998 18004 18005 981995 981994 18008 18009 981991 981990 18012 18013 981987 981000 19002 19003 980997 980996 19006 19007 980993 980992 19010 19011 980989 980988 19014 980000 20002 20003 979997 979996 20006 20007 979993 979992 20010 20011 979989 979988 20014 21001 978999 978998 21004 21005 978995 978994 21008 21009 978991 978990 21012 21013 978987 22001 977999 977998 22004 22005 977995 977994 22008 22009 977991 977990 22012 22013 977987 977000 23002 23003 976997 976996 23006 23007 976993 976992 23010 23011 976989 976988 23014 976000 24002 24003 975997 975996 24006 24007 975993 975992 24010 24011 975989 975988 24014 25001 974999 974998 25004 25005 974995 974994 25008 25009 974991 974990 25012 25013 974987 26001 973999 973998 26004 26005 973995 973994 26008 26009 973991 973990 26012 26013 973987 973000 27002 27003 972997 972996 27006 27007 972993 972992 27010 27011 972989 972988 27014 972000 28002 28003 971997 971996 28006 28007 971993 971992 28010 28011 971989 971988 28014 29001 970999 970998 29004 29005 970995 970994 29008 29009 970991 970990 29012 29013 970987 30001 969999 969998 30004 30005 969995 969994 30008 30009 969991 969990 30012 30013 969987 969000 31002 31003 968997 968996 31006 31007 968993 968992 31010 31011 968989 968988 31014 968000 32002 32003 967997 967996 32006 32007 967993 967992 32010 32011 967989 967988 32014 33001 966999 966998 33004 33005 966995 966994 33008 33009 966991 966990 33012 33013 966987 34001 965999 965998 34004 34005 965995 965994 34008 34009 965991 965990 34012 34013 965987 965000 35002 35003 964997 964996 35006 35007 964993 964992 35010 35011 964989 964988 35014 964000 36002 36003 963997 963996 36006 36007 963993 963992 36010 36011 963989 963988 36014 37001 962999 962998 37004 37005 962995 962994 37008 37009 962991 962990 37012 37013 962987 38001 961999 961998 38004 38005 961995 961994 38008 38009 961991 961990 38012 38013 961987 961000 39002 39003 960997 960996 39006 39007 960993 960992 39010 39011 960989 960988 39014 960000 40002 40003 959997 959996 40006 40007 959993 959992 40010 40011 959989 959988 40014 41001 958999 958998 41004 41005 958995 958994 41008 41009 958991 958990 41012 41013 958987 42001 957999 957998 42004 42005 957995 957994 42008 42009 957991 957990 42012 42013 957987 957000 43002 43003 956997 956996 43006 43007 956993 956992 43010 43011 956989 956988 43014 956000 44002 44003 955997 955996 44006 44007 955993 955992 44010 44011 955989 955988 44014 45001 954999 954998 45004 45005 954995 954994 45008 45009 954991 954990 45012 45013 954987 46001 953999 953998 46004 46005 953995 953994 46008 46009 953991 953990 46012 46013 953987 953000 47002 47003 952997 952996 47006 47007 952993 952992 47010 47011 952989 952988 47014 952000 48002 48003 951997 951996 48006 48007 951993 951992 48010 48011 951989 951988 48014 49001 950999 950998 49004 49005 950995 950994 49008 49009 950991 950990 49012 49013 950987 50001 949999 949998 50004 50005 949995 949994 50008 50009 949991 949990 50012 50013 949987 949000 51002 51003 948997 948996 51006 51007 948993 948992 51010 51011 948989 948988 51014 948000 52002 52003 947997 947996 52006 52007 947993 947992 52010 52011 947989 947988 52014 53001 946999 946998 53004 53005 946995 946994 53008 53009 946991 946990 53012 53013 946987 54001 945999 945998 54004 54005 945995 945994 54008 54009 945991 945990 54012 54013 945987 945000 55002 55003 944997 944996 55006 55007 944993 944992 55010 55011 944989 944988 55014 944000 56002 56003 943997 943996 56006 56007 943993 943992 56010 56011 943989 943988 56014 57001 942999 942998 57004 57005 942995 942994 57008 57009 942991 942990 57012 57013 942987 58001 941999 941998 58004 58005 941995 941994 58008 58009 941991 941990 58012 58013 941987 ...