home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / unix / volume26 / calc / part17 < prev    next >
Encoding:
Text File  |  1992-05-09  |  35.4 KB  |  1,309 lines

  1. Newsgroups: comp.sources.unix
  2. From: dbell@pdact.pd.necisa.oz.au (David I. Bell)
  3. Subject: v26i043: CALC - An arbitrary precision C-like calculator, Part17/21
  4. Sender: unix-sources-moderator@pa.dec.com
  5. Approved: vixie@pa.dec.com
  6.  
  7. Submitted-By: dbell@pdact.pd.necisa.oz.au (David I. Bell)
  8. Posting-Number: Volume 26, Issue 43
  9. Archive-Name: calc/part17
  10.  
  11. #! /bin/sh
  12. # This is a shell archive.  Remove anything before this line, then unpack
  13. # it by saving it into a file and typing "sh file".  To overwrite existing
  14. # files, type "sh file -c".  You can also feed this as standard input via
  15. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  16. # will see the following message at the end:
  17. #        "End of archive 17 (of 21)."
  18. # Contents:  lib/lucas_chk.cal
  19. # Wrapped by dbell@elm on Tue Feb 25 15:21:15 1992
  20. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  21. if test -f 'lib/lucas_chk.cal' -a "${1}" != "-c" ; then 
  22.   echo shar: Will not clobber existing file \"'lib/lucas_chk.cal'\"
  23. else
  24. echo shar: Extracting \"'lib/lucas_chk.cal'\" \(33284 characters\)
  25. sed "s/^X//" >'lib/lucas_chk.cal' <<'END_OF_FILE'
  26. X/*
  27. X * Copyright (c) 1992 Landon Curt Noll
  28. X * Permission is granted to use, distribute, or modify this source,
  29. X * provided that this copyright notice remains intact.
  30. X *
  31. X * By: Landon Curt Noll
  32. X *     chongo@toad.com  -or-  ...!{pyramid,sun,uunet}!sun!hoptoad!chongo
  33. X *
  34. X *
  35. X * primes of the form h*2^n-1 for 1<=h<200 and 1<=n<1000
  36. X *
  37. X * For all 0 <= i < prime_cnt, h_p[i]*2^n_p[i]-1 is prime.
  38. X *
  39. X * These values were taken from:
  40. X *
  41. X *    "Prime numbers and Computer Methods for Factorization", by Hans Riesel,
  42. X *    Birkhauser, 1985, pp 384-387.
  43. X *
  44. X * This routine assumes that the file "lucas.cal" has been loaded.
  45. X *
  46. X * NOTE: There are several errors in Riesel's table that have been corrected
  47. X *     in this file:
  48. X *
  49. X *        193*2^87-1 is prime
  50. X *        193*2^97-1 is NOT prime
  51. X *        199*2^211-1 is prime
  52. X *        199*2^221-1 is NOT prime
  53. X */
  54. X
  55. Xglobal prime_cnt;    /* number of primes in the list */
  56. Xprime_cnt = 1145;
  57. Xmat h_p[prime_cnt];    /* h = prime parameters */
  58. Xmat n_p[prime_cnt];    /* n (exponent) prime parameters */
  59. Xh_p[0]=1;    n_p[0]=2;
  60. Xh_p[1]=1;    n_p[1]=3;
  61. Xh_p[2]=1;    n_p[2]=5;
  62. Xh_p[3]=1;    n_p[3]=7;
  63. Xh_p[4]=1;    n_p[4]=13;
  64. Xh_p[5]=1;    n_p[5]=17;
  65. Xh_p[6]=1;    n_p[6]=19;
  66. Xh_p[7]=1;    n_p[7]=31;
  67. Xh_p[8]=1;    n_p[8]=61;
  68. Xh_p[9]=1;    n_p[9]=89;
  69. Xh_p[10]=1;    n_p[10]=107;
  70. Xh_p[11]=1;    n_p[11]=127;
  71. Xh_p[12]=1;    n_p[12]=521;
  72. Xh_p[13]=1;    n_p[13]=607;
  73. Xh_p[14]=3;    n_p[14]=1;
  74. Xh_p[15]=3;    n_p[15]=2;
  75. Xh_p[16]=3;    n_p[16]=3;
  76. Xh_p[17]=3;    n_p[17]=4;
  77. Xh_p[18]=3;    n_p[18]=6;
  78. Xh_p[19]=3;    n_p[19]=7;
  79. Xh_p[20]=3;    n_p[20]=11;
  80. Xh_p[21]=3;    n_p[21]=18;
  81. Xh_p[22]=3;    n_p[22]=34;
  82. Xh_p[23]=3;    n_p[23]=38;
  83. Xh_p[24]=3;    n_p[24]=43;
  84. Xh_p[25]=3;    n_p[25]=55;
  85. Xh_p[26]=3;    n_p[26]=64;
  86. Xh_p[27]=3;    n_p[27]=76;
  87. Xh_p[28]=3;    n_p[28]=94;
  88. Xh_p[29]=3;    n_p[29]=103;
  89. Xh_p[30]=3;    n_p[30]=143;
  90. Xh_p[31]=3;    n_p[31]=206;
  91. Xh_p[32]=3;    n_p[32]=216;
  92. Xh_p[33]=3;    n_p[33]=306;
  93. Xh_p[34]=3;    n_p[34]=324;
  94. Xh_p[35]=3;    n_p[35]=391;
  95. Xh_p[36]=3;    n_p[36]=458;
  96. Xh_p[37]=3;    n_p[37]=470;
  97. Xh_p[38]=3;    n_p[38]=827;
  98. Xh_p[39]=5;    n_p[39]=2;
  99. Xh_p[40]=5;    n_p[40]=4;
  100. Xh_p[41]=5;    n_p[41]=8;
  101. Xh_p[42]=5;    n_p[42]=10;
  102. Xh_p[43]=5;    n_p[43]=12;
  103. Xh_p[44]=5;    n_p[44]=14;
  104. Xh_p[45]=5;    n_p[45]=18;
  105. Xh_p[46]=5;    n_p[46]=32;
  106. Xh_p[47]=5;    n_p[47]=48;
  107. Xh_p[48]=5;    n_p[48]=54;
  108. Xh_p[49]=5;    n_p[49]=72;
  109. Xh_p[50]=5;    n_p[50]=148;
  110. Xh_p[51]=5;    n_p[51]=184;
  111. Xh_p[52]=5;    n_p[52]=248;
  112. Xh_p[53]=5;    n_p[53]=270;
  113. Xh_p[54]=5;    n_p[54]=274;
  114. Xh_p[55]=5;    n_p[55]=420;
  115. Xh_p[56]=7;    n_p[56]=1;
  116. Xh_p[57]=7;    n_p[57]=5;
  117. Xh_p[58]=7;    n_p[58]=9;
  118. Xh_p[59]=7;    n_p[59]=17;
  119. Xh_p[60]=7;    n_p[60]=21;
  120. Xh_p[61]=7;    n_p[61]=29;
  121. Xh_p[62]=7;    n_p[62]=45;
  122. Xh_p[63]=7;    n_p[63]=177;
  123. Xh_p[64]=9;    n_p[64]=1;
  124. Xh_p[65]=9;    n_p[65]=3;
  125. Xh_p[66]=9;    n_p[66]=7;
  126. Xh_p[67]=9;    n_p[67]=13;
  127. Xh_p[68]=9;    n_p[68]=15;
  128. Xh_p[69]=9;    n_p[69]=21;
  129. Xh_p[70]=9;    n_p[70]=43;
  130. Xh_p[71]=9;    n_p[71]=63;
  131. Xh_p[72]=9;    n_p[72]=99;
  132. Xh_p[73]=9;    n_p[73]=109;
  133. Xh_p[74]=9;    n_p[74]=159;
  134. Xh_p[75]=9;    n_p[75]=211;
  135. Xh_p[76]=9;    n_p[76]=309;
  136. Xh_p[77]=9;    n_p[77]=343;
  137. Xh_p[78]=9;    n_p[78]=415;
  138. Xh_p[79]=9;    n_p[79]=469;
  139. Xh_p[80]=9;    n_p[80]=781;
  140. Xh_p[81]=9;    n_p[81]=871;
  141. Xh_p[82]=9;    n_p[82]=939;
  142. Xh_p[83]=11;    n_p[83]=2;
  143. Xh_p[84]=11;    n_p[84]=26;
  144. Xh_p[85]=11;    n_p[85]=50;
  145. Xh_p[86]=11;    n_p[86]=54;
  146. Xh_p[87]=11;    n_p[87]=126;
  147. Xh_p[88]=11;    n_p[88]=134;
  148. Xh_p[89]=11;    n_p[89]=246;
  149. Xh_p[90]=11;    n_p[90]=354;
  150. Xh_p[91]=11;    n_p[91]=362;
  151. Xh_p[92]=11;    n_p[92]=950;
  152. Xh_p[93]=13;    n_p[93]=3;
  153. Xh_p[94]=13;    n_p[94]=7;
  154. Xh_p[95]=13;    n_p[95]=23;
  155. Xh_p[96]=13;    n_p[96]=287;
  156. Xh_p[97]=13;    n_p[97]=291;
  157. Xh_p[98]=13;    n_p[98]=795;
  158. Xh_p[99]=15;    n_p[99]=1;
  159. Xh_p[100]=15;    n_p[100]=2;
  160. Xh_p[101]=15;    n_p[101]=4;
  161. Xh_p[102]=15;    n_p[102]=5;
  162. Xh_p[103]=15;    n_p[103]=10;
  163. Xh_p[104]=15;    n_p[104]=14;
  164. Xh_p[105]=15;    n_p[105]=17;
  165. Xh_p[106]=15;    n_p[106]=31;
  166. Xh_p[107]=15;    n_p[107]=41;
  167. Xh_p[108]=15;    n_p[108]=73;
  168. Xh_p[109]=15;    n_p[109]=80;
  169. Xh_p[110]=15;    n_p[110]=82;
  170. Xh_p[111]=15;    n_p[111]=116;
  171. Xh_p[112]=15;    n_p[112]=125;
  172. Xh_p[113]=15;    n_p[113]=145;
  173. Xh_p[114]=15;    n_p[114]=157;
  174. Xh_p[115]=15;    n_p[115]=172;
  175. Xh_p[116]=15;    n_p[116]=202;
  176. Xh_p[117]=15;    n_p[117]=224;
  177. Xh_p[118]=15;    n_p[118]=266;
  178. Xh_p[119]=15;    n_p[119]=289;
  179. Xh_p[120]=15;    n_p[120]=293;
  180. Xh_p[121]=15;    n_p[121]=463;
  181. Xh_p[122]=17;    n_p[122]=2;
  182. Xh_p[123]=17;    n_p[123]=4;
  183. Xh_p[124]=17;    n_p[124]=6;
  184. Xh_p[125]=17;    n_p[125]=16;
  185. Xh_p[126]=17;    n_p[126]=20;
  186. Xh_p[127]=17;    n_p[127]=36;
  187. Xh_p[128]=17;    n_p[128]=54;
  188. Xh_p[129]=17;    n_p[129]=60;
  189. Xh_p[130]=17;    n_p[130]=96;
  190. Xh_p[131]=17;    n_p[131]=124;
  191. Xh_p[132]=17;    n_p[132]=150;
  192. Xh_p[133]=17;    n_p[133]=252;
  193. Xh_p[134]=17;    n_p[134]=356;
  194. Xh_p[135]=17;    n_p[135]=460;
  195. Xh_p[136]=17;    n_p[136]=612;
  196. Xh_p[137]=17;    n_p[137]=654;
  197. Xh_p[138]=17;    n_p[138]=664;
  198. Xh_p[139]=17;    n_p[139]=698;
  199. Xh_p[140]=17;    n_p[140]=702;
  200. Xh_p[141]=17;    n_p[141]=972;
  201. Xh_p[142]=19;    n_p[142]=1;
  202. Xh_p[143]=19;    n_p[143]=3;
  203. Xh_p[144]=19;    n_p[144]=5;
  204. Xh_p[145]=19;    n_p[145]=21;
  205. Xh_p[146]=19;    n_p[146]=41;
  206. Xh_p[147]=19;    n_p[147]=49;
  207. Xh_p[148]=19;    n_p[148]=89;
  208. Xh_p[149]=19;    n_p[149]=133;
  209. Xh_p[150]=19;    n_p[150]=141;
  210. Xh_p[151]=19;    n_p[151]=165;
  211. Xh_p[152]=19;    n_p[152]=189;
  212. Xh_p[153]=19;    n_p[153]=293;
  213. Xh_p[154]=19;    n_p[154]=305;
  214. Xh_p[155]=19;    n_p[155]=395;
  215. Xh_p[156]=19;    n_p[156]=651;
  216. Xh_p[157]=19;    n_p[157]=665;
  217. Xh_p[158]=19;    n_p[158]=771;
  218. Xh_p[159]=19;    n_p[159]=801;
  219. Xh_p[160]=19;    n_p[160]=923;
  220. Xh_p[161]=19;    n_p[161]=953;
  221. Xh_p[162]=21;    n_p[162]=1;
  222. Xh_p[163]=21;    n_p[163]=2;
  223. Xh_p[164]=21;    n_p[164]=3;
  224. Xh_p[165]=21;    n_p[165]=7;
  225. Xh_p[166]=21;    n_p[166]=10;
  226. Xh_p[167]=21;    n_p[167]=13;
  227. Xh_p[168]=21;    n_p[168]=18;
  228. Xh_p[169]=21;    n_p[169]=27;
  229. Xh_p[170]=21;    n_p[170]=37;
  230. Xh_p[171]=21;    n_p[171]=51;
  231. Xh_p[172]=21;    n_p[172]=74;
  232. Xh_p[173]=21;    n_p[173]=157;
  233. Xh_p[174]=21;    n_p[174]=271;
  234. Xh_p[175]=21;    n_p[175]=458;
  235. Xh_p[176]=21;    n_p[176]=530;
  236. Xh_p[177]=21;    n_p[177]=891;
  237. Xh_p[178]=23;    n_p[178]=4;
  238. Xh_p[179]=23;    n_p[179]=6;
  239. Xh_p[180]=23;    n_p[180]=12;
  240. Xh_p[181]=23;    n_p[181]=46;
  241. Xh_p[182]=23;    n_p[182]=72;
  242. Xh_p[183]=23;    n_p[183]=244;
  243. Xh_p[184]=23;    n_p[184]=264;
  244. Xh_p[185]=23;    n_p[185]=544;
  245. Xh_p[186]=23;    n_p[186]=888;
  246. Xh_p[187]=25;    n_p[187]=3;
  247. Xh_p[188]=25;    n_p[188]=9;
  248. Xh_p[189]=25;    n_p[189]=11;
  249. Xh_p[190]=25;    n_p[190]=17;
  250. Xh_p[191]=25;    n_p[191]=23;
  251. Xh_p[192]=25;    n_p[192]=35;
  252. Xh_p[193]=25;    n_p[193]=39;
  253. Xh_p[194]=25;    n_p[194]=75;
  254. Xh_p[195]=25;    n_p[195]=105;
  255. Xh_p[196]=25;    n_p[196]=107;
  256. Xh_p[197]=25;    n_p[197]=155;
  257. Xh_p[198]=25;    n_p[198]=215;
  258. Xh_p[199]=25;    n_p[199]=335;
  259. Xh_p[200]=25;    n_p[200]=635;
  260. Xh_p[201]=25;    n_p[201]=651;
  261. Xh_p[202]=25;    n_p[202]=687;
  262. Xh_p[203]=27;    n_p[203]=1;
  263. Xh_p[204]=27;    n_p[204]=2;
  264. Xh_p[205]=27;    n_p[205]=4;
  265. Xh_p[206]=27;    n_p[206]=5;
  266. Xh_p[207]=27;    n_p[207]=8;
  267. Xh_p[208]=27;    n_p[208]=10;
  268. Xh_p[209]=27;    n_p[209]=14;
  269. Xh_p[210]=27;    n_p[210]=28;
  270. Xh_p[211]=27;    n_p[211]=37;
  271. Xh_p[212]=27;    n_p[212]=38;
  272. Xh_p[213]=27;    n_p[213]=70;
  273. Xh_p[214]=27;    n_p[214]=121;
  274. Xh_p[215]=27;    n_p[215]=122;
  275. Xh_p[216]=27;    n_p[216]=160;
  276. Xh_p[217]=27;    n_p[217]=170;
  277. Xh_p[218]=27;    n_p[218]=253;
  278. Xh_p[219]=27;    n_p[219]=329;
  279. Xh_p[220]=27;    n_p[220]=362;
  280. Xh_p[221]=27;    n_p[221]=454;
  281. Xh_p[222]=27;    n_p[222]=485;
  282. Xh_p[223]=27;    n_p[223]=500;
  283. Xh_p[224]=27;    n_p[224]=574;
  284. Xh_p[225]=27;    n_p[225]=892;
  285. Xh_p[226]=27;    n_p[226]=962;
  286. Xh_p[227]=29;    n_p[227]=4;
  287. Xh_p[228]=29;    n_p[228]=16;
  288. Xh_p[229]=29;    n_p[229]=76;
  289. Xh_p[230]=29;    n_p[230]=148;
  290. Xh_p[231]=29;    n_p[231]=184;
  291. Xh_p[232]=31;    n_p[232]=1;
  292. Xh_p[233]=31;    n_p[233]=5;
  293. Xh_p[234]=31;    n_p[234]=7;
  294. Xh_p[235]=31;    n_p[235]=11;
  295. Xh_p[236]=31;    n_p[236]=13;
  296. Xh_p[237]=31;    n_p[237]=23;
  297. Xh_p[238]=31;    n_p[238]=33;
  298. Xh_p[239]=31;    n_p[239]=35;
  299. Xh_p[240]=31;    n_p[240]=37;
  300. Xh_p[241]=31;    n_p[241]=47;
  301. Xh_p[242]=31;    n_p[242]=115;
  302. Xh_p[243]=31;    n_p[243]=205;
  303. Xh_p[244]=31;    n_p[244]=235;
  304. Xh_p[245]=31;    n_p[245]=271;
  305. Xh_p[246]=31;    n_p[246]=409;
  306. Xh_p[247]=31;    n_p[247]=739;
  307. Xh_p[248]=31;    n_p[248]=837;
  308. Xh_p[249]=31;    n_p[249]=887;
  309. Xh_p[250]=33;    n_p[250]=2;
  310. Xh_p[251]=33;    n_p[251]=3;
  311. Xh_p[252]=33;    n_p[252]=6;
  312. Xh_p[253]=33;    n_p[253]=8;
  313. Xh_p[254]=33;    n_p[254]=10;
  314. Xh_p[255]=33;    n_p[255]=22;
  315. Xh_p[256]=33;    n_p[256]=35;
  316. Xh_p[257]=33;    n_p[257]=42;
  317. Xh_p[258]=33;    n_p[258]=43;
  318. Xh_p[259]=33;    n_p[259]=46;
  319. Xh_p[260]=33;    n_p[260]=56;
  320. Xh_p[261]=33;    n_p[261]=91;
  321. Xh_p[262]=33;    n_p[262]=102;
  322. Xh_p[263]=33;    n_p[263]=106;
  323. Xh_p[264]=33;    n_p[264]=142;
  324. Xh_p[265]=33;    n_p[265]=190;
  325. Xh_p[266]=33;    n_p[266]=208;
  326. Xh_p[267]=33;    n_p[267]=266;
  327. Xh_p[268]=33;    n_p[268]=330;
  328. Xh_p[269]=33;    n_p[269]=360;
  329. Xh_p[270]=33;    n_p[270]=382;
  330. Xh_p[271]=33;    n_p[271]=462;
  331. Xh_p[272]=33;    n_p[272]=503;
  332. Xh_p[273]=33;    n_p[273]=815;
  333. Xh_p[274]=35;    n_p[274]=2;
  334. Xh_p[275]=35;    n_p[275]=6;
  335. Xh_p[276]=35;    n_p[276]=10;
  336. Xh_p[277]=35;    n_p[277]=20;
  337. Xh_p[278]=35;    n_p[278]=44;
  338. Xh_p[279]=35;    n_p[279]=114;
  339. Xh_p[280]=35;    n_p[280]=146;
  340. Xh_p[281]=35;    n_p[281]=156;
  341. Xh_p[282]=35;    n_p[282]=174;
  342. Xh_p[283]=35;    n_p[283]=260;
  343. Xh_p[284]=35;    n_p[284]=306;
  344. Xh_p[285]=35;    n_p[285]=380;
  345. Xh_p[286]=35;    n_p[286]=654;
  346. Xh_p[287]=35;    n_p[287]=686;
  347. Xh_p[288]=35;    n_p[288]=702;
  348. Xh_p[289]=35;    n_p[289]=814;
  349. Xh_p[290]=35;    n_p[290]=906;
  350. Xh_p[291]=37;    n_p[291]=1;
  351. Xh_p[292]=39;    n_p[292]=3;
  352. Xh_p[293]=39;    n_p[293]=24;
  353. Xh_p[294]=39;    n_p[294]=105;
  354. Xh_p[295]=39;    n_p[295]=153;
  355. Xh_p[296]=39;    n_p[296]=188;
  356. Xh_p[297]=39;    n_p[297]=605;
  357. Xh_p[298]=39;    n_p[298]=795;
  358. Xh_p[299]=39;    n_p[299]=813;
  359. Xh_p[300]=39;    n_p[300]=839;
  360. Xh_p[301]=41;    n_p[301]=2;
  361. Xh_p[302]=41;    n_p[302]=10;
  362. Xh_p[303]=41;    n_p[303]=14;
  363. Xh_p[304]=41;    n_p[304]=18;
  364. Xh_p[305]=41;    n_p[305]=50;
  365. Xh_p[306]=41;    n_p[306]=114;
  366. Xh_p[307]=41;    n_p[307]=122;
  367. Xh_p[308]=41;    n_p[308]=294;
  368. Xh_p[309]=41;    n_p[309]=362;
  369. Xh_p[310]=41;    n_p[310]=554;
  370. Xh_p[311]=41;    n_p[311]=582;
  371. Xh_p[312]=41;    n_p[312]=638;
  372. Xh_p[313]=41;    n_p[313]=758;
  373. Xh_p[314]=43;    n_p[314]=7;
  374. Xh_p[315]=43;    n_p[315]=31;
  375. Xh_p[316]=43;    n_p[316]=67;
  376. Xh_p[317]=43;    n_p[317]=251;
  377. Xh_p[318]=43;    n_p[318]=767;
  378. Xh_p[319]=45;    n_p[319]=1;
  379. Xh_p[320]=45;    n_p[320]=2;
  380. Xh_p[321]=45;    n_p[321]=3;
  381. Xh_p[322]=45;    n_p[322]=4;
  382. Xh_p[323]=45;    n_p[323]=5;
  383. Xh_p[324]=45;    n_p[324]=6;
  384. Xh_p[325]=45;    n_p[325]=8;
  385. Xh_p[326]=45;    n_p[326]=9;
  386. Xh_p[327]=45;    n_p[327]=14;
  387. Xh_p[328]=45;    n_p[328]=15;
  388. Xh_p[329]=45;    n_p[329]=16;
  389. Xh_p[330]=45;    n_p[330]=22;
  390. Xh_p[331]=45;    n_p[331]=28;
  391. Xh_p[332]=45;    n_p[332]=29;
  392. Xh_p[333]=45;    n_p[333]=36;
  393. Xh_p[334]=45;    n_p[334]=37;
  394. Xh_p[335]=45;    n_p[335]=54;
  395. Xh_p[336]=45;    n_p[336]=59;
  396. Xh_p[337]=45;    n_p[337]=85;
  397. Xh_p[338]=45;    n_p[338]=93;
  398. Xh_p[339]=45;    n_p[339]=117;
  399. Xh_p[340]=45;    n_p[340]=119;
  400. Xh_p[341]=45;    n_p[341]=161;
  401. Xh_p[342]=45;    n_p[342]=189;
  402. Xh_p[343]=45;    n_p[343]=193;
  403. Xh_p[344]=45;    n_p[344]=256;
  404. Xh_p[345]=45;    n_p[345]=308;
  405. Xh_p[346]=45;    n_p[346]=322;
  406. Xh_p[347]=45;    n_p[347]=327;
  407. Xh_p[348]=45;    n_p[348]=411;
  408. Xh_p[349]=45;    n_p[349]=466;
  409. Xh_p[350]=45;    n_p[350]=577;
  410. Xh_p[351]=45;    n_p[351]=591;
  411. Xh_p[352]=45;    n_p[352]=902;
  412. Xh_p[353]=45;    n_p[353]=928;
  413. Xh_p[354]=45;    n_p[354]=946;
  414. Xh_p[355]=47;    n_p[355]=4;
  415. Xh_p[356]=47;    n_p[356]=14;
  416. Xh_p[357]=47;    n_p[357]=70;
  417. Xh_p[358]=47;    n_p[358]=78;
  418. Xh_p[359]=49;    n_p[359]=1;
  419. Xh_p[360]=49;    n_p[360]=5;
  420. Xh_p[361]=49;    n_p[361]=7;
  421. Xh_p[362]=49;    n_p[362]=9;
  422. Xh_p[363]=49;    n_p[363]=13;
  423. Xh_p[364]=49;    n_p[364]=15;
  424. Xh_p[365]=49;    n_p[365]=29;
  425. Xh_p[366]=49;    n_p[366]=33;
  426. Xh_p[367]=49;    n_p[367]=39;
  427. Xh_p[368]=49;    n_p[368]=55;
  428. Xh_p[369]=49;    n_p[369]=81;
  429. Xh_p[370]=49;    n_p[370]=95;
  430. Xh_p[371]=49;    n_p[371]=205;
  431. Xh_p[372]=49;    n_p[372]=279;
  432. Xh_p[373]=49;    n_p[373]=581;
  433. Xh_p[374]=49;    n_p[374]=807;
  434. Xh_p[375]=49;    n_p[375]=813;
  435. Xh_p[376]=51;    n_p[376]=1;
  436. Xh_p[377]=51;    n_p[377]=9;
  437. Xh_p[378]=51;    n_p[378]=10;
  438. Xh_p[379]=51;    n_p[379]=19;
  439. Xh_p[380]=51;    n_p[380]=22;
  440. Xh_p[381]=51;    n_p[381]=57;
  441. Xh_p[382]=51;    n_p[382]=69;
  442. Xh_p[383]=51;    n_p[383]=97;
  443. Xh_p[384]=51;    n_p[384]=141;
  444. Xh_p[385]=51;    n_p[385]=169;
  445. Xh_p[386]=51;    n_p[386]=171;
  446. Xh_p[387]=51;    n_p[387]=195;
  447. Xh_p[388]=51;    n_p[388]=238;
  448. Xh_p[389]=51;    n_p[389]=735;
  449. Xh_p[390]=51;    n_p[390]=885;
  450. Xh_p[391]=53;    n_p[391]=2;
  451. Xh_p[392]=53;    n_p[392]=6;
  452. Xh_p[393]=53;    n_p[393]=8;
  453. Xh_p[394]=53;    n_p[394]=42;
  454. Xh_p[395]=53;    n_p[395]=50;
  455. Xh_p[396]=53;    n_p[396]=62;
  456. Xh_p[397]=53;    n_p[397]=362;
  457. Xh_p[398]=53;    n_p[398]=488;
  458. Xh_p[399]=53;    n_p[399]=642;
  459. Xh_p[400]=53;    n_p[400]=846;
  460. Xh_p[401]=55;    n_p[401]=1;
  461. Xh_p[402]=55;    n_p[402]=3;
  462. Xh_p[403]=55;    n_p[403]=5;
  463. Xh_p[404]=55;    n_p[404]=7;
  464. Xh_p[405]=55;    n_p[405]=15;
  465. Xh_p[406]=55;    n_p[406]=33;
  466. Xh_p[407]=55;    n_p[407]=41;
  467. Xh_p[408]=55;    n_p[408]=57;
  468. Xh_p[409]=55;    n_p[409]=69;
  469. Xh_p[410]=55;    n_p[410]=75;
  470. Xh_p[411]=55;    n_p[411]=77;
  471. Xh_p[412]=55;    n_p[412]=131;
  472. Xh_p[413]=55;    n_p[413]=133;
  473. Xh_p[414]=55;    n_p[414]=153;
  474. Xh_p[415]=55;    n_p[415]=247;
  475. Xh_p[416]=55;    n_p[416]=305;
  476. Xh_p[417]=55;    n_p[417]=351;
  477. Xh_p[418]=55;    n_p[418]=409;
  478. Xh_p[419]=55;    n_p[419]=471;
  479. Xh_p[420]=57;    n_p[420]=1;
  480. Xh_p[421]=57;    n_p[421]=2;
  481. Xh_p[422]=57;    n_p[422]=4;
  482. Xh_p[423]=57;    n_p[423]=5;
  483. Xh_p[424]=57;    n_p[424]=8;
  484. Xh_p[425]=57;    n_p[425]=10;
  485. Xh_p[426]=57;    n_p[426]=20;
  486. Xh_p[427]=57;    n_p[427]=22;
  487. Xh_p[428]=57;    n_p[428]=25;
  488. Xh_p[429]=57;    n_p[429]=26;
  489. Xh_p[430]=57;    n_p[430]=32;
  490. Xh_p[431]=57;    n_p[431]=44;
  491. Xh_p[432]=57;    n_p[432]=62;
  492. Xh_p[433]=57;    n_p[433]=77;
  493. Xh_p[434]=57;    n_p[434]=158;
  494. Xh_p[435]=57;    n_p[435]=317;
  495. Xh_p[436]=57;    n_p[436]=500;
  496. Xh_p[437]=57;    n_p[437]=713;
  497. Xh_p[438]=59;    n_p[438]=12;
  498. Xh_p[439]=59;    n_p[439]=16;
  499. Xh_p[440]=59;    n_p[440]=72;
  500. Xh_p[441]=59;    n_p[441]=160;
  501. Xh_p[442]=59;    n_p[442]=256;
  502. Xh_p[443]=59;    n_p[443]=916;
  503. Xh_p[444]=61;    n_p[444]=3;
  504. Xh_p[445]=61;    n_p[445]=5;
  505. Xh_p[446]=61;    n_p[446]=9;
  506. Xh_p[447]=61;    n_p[447]=13;
  507. Xh_p[448]=61;    n_p[448]=17;
  508. Xh_p[449]=61;    n_p[449]=19;
  509. Xh_p[450]=61;    n_p[450]=25;
  510. Xh_p[451]=61;    n_p[451]=39;
  511. Xh_p[452]=61;    n_p[452]=63;
  512. Xh_p[453]=61;    n_p[453]=67;
  513. Xh_p[454]=61;    n_p[454]=75;
  514. Xh_p[455]=61;    n_p[455]=119;
  515. Xh_p[456]=61;    n_p[456]=147;
  516. Xh_p[457]=61;    n_p[457]=225;
  517. Xh_p[458]=61;    n_p[458]=419;
  518. Xh_p[459]=61;    n_p[459]=715;
  519. Xh_p[460]=61;    n_p[460]=895;
  520. Xh_p[461]=63;    n_p[461]=2;
  521. Xh_p[462]=63;    n_p[462]=3;
  522. Xh_p[463]=63;    n_p[463]=8;
  523. Xh_p[464]=63;    n_p[464]=11;
  524. Xh_p[465]=63;    n_p[465]=14;
  525. Xh_p[466]=63;    n_p[466]=16;
  526. Xh_p[467]=63;    n_p[467]=28;
  527. Xh_p[468]=63;    n_p[468]=32;
  528. Xh_p[469]=63;    n_p[469]=39;
  529. Xh_p[470]=63;    n_p[470]=66;
  530. Xh_p[471]=63;    n_p[471]=68;
  531. Xh_p[472]=63;    n_p[472]=91;
  532. Xh_p[473]=63;    n_p[473]=98;
  533. Xh_p[474]=63;    n_p[474]=116;
  534. Xh_p[475]=63;    n_p[475]=126;
  535. Xh_p[476]=63;    n_p[476]=164;
  536. Xh_p[477]=63;    n_p[477]=191;
  537. Xh_p[478]=63;    n_p[478]=298;
  538. Xh_p[479]=63;    n_p[479]=323;
  539. Xh_p[480]=63;    n_p[480]=443;
  540. Xh_p[481]=63;    n_p[481]=714;
  541. Xh_p[482]=63;    n_p[482]=758;
  542. Xh_p[483]=63;    n_p[483]=759;
  543. Xh_p[484]=65;    n_p[484]=4;
  544. Xh_p[485]=65;    n_p[485]=6;
  545. Xh_p[486]=65;    n_p[486]=12;
  546. Xh_p[487]=65;    n_p[487]=22;
  547. Xh_p[488]=65;    n_p[488]=28;
  548. Xh_p[489]=65;    n_p[489]=52;
  549. Xh_p[490]=65;    n_p[490]=78;
  550. Xh_p[491]=65;    n_p[491]=94;
  551. Xh_p[492]=65;    n_p[492]=124;
  552. Xh_p[493]=65;    n_p[493]=162;
  553. Xh_p[494]=65;    n_p[494]=174;
  554. Xh_p[495]=65;    n_p[495]=192;
  555. Xh_p[496]=65;    n_p[496]=204;
  556. Xh_p[497]=65;    n_p[497]=304;
  557. Xh_p[498]=65;    n_p[498]=376;
  558. Xh_p[499]=65;    n_p[499]=808;
  559. Xh_p[500]=65;    n_p[500]=930;
  560. Xh_p[501]=65;    n_p[501]=972;
  561. Xh_p[502]=67;    n_p[502]=5;
  562. Xh_p[503]=67;    n_p[503]=9;
  563. Xh_p[504]=67;    n_p[504]=21;
  564. Xh_p[505]=67;    n_p[505]=45;
  565. Xh_p[506]=67;    n_p[506]=65;
  566. Xh_p[507]=67;    n_p[507]=77;
  567. Xh_p[508]=67;    n_p[508]=273;
  568. Xh_p[509]=67;    n_p[509]=677;
  569. Xh_p[510]=69;    n_p[510]=1;
  570. Xh_p[511]=69;    n_p[511]=4;
  571. Xh_p[512]=69;    n_p[512]=5;
  572. Xh_p[513]=69;    n_p[513]=7;
  573. Xh_p[514]=69;    n_p[514]=9;
  574. Xh_p[515]=69;    n_p[515]=11;
  575. Xh_p[516]=69;    n_p[516]=13;
  576. Xh_p[517]=69;    n_p[517]=17;
  577. Xh_p[518]=69;    n_p[518]=19;
  578. Xh_p[519]=69;    n_p[519]=23;
  579. Xh_p[520]=69;    n_p[520]=29;
  580. Xh_p[521]=69;    n_p[521]=37;
  581. Xh_p[522]=69;    n_p[522]=49;
  582. Xh_p[523]=69;    n_p[523]=61;
  583. Xh_p[524]=69;    n_p[524]=79;
  584. Xh_p[525]=69;    n_p[525]=99;
  585. Xh_p[526]=69;    n_p[526]=121;
  586. Xh_p[527]=69;    n_p[527]=133;
  587. Xh_p[528]=69;    n_p[528]=141;
  588. Xh_p[529]=69;    n_p[529]=164;
  589. Xh_p[530]=69;    n_p[530]=173;
  590. Xh_p[531]=69;    n_p[531]=181;
  591. Xh_p[532]=69;    n_p[532]=185;
  592. Xh_p[533]=69;    n_p[533]=193;
  593. Xh_p[534]=69;    n_p[534]=233;
  594. Xh_p[535]=69;    n_p[535]=299;
  595. Xh_p[536]=69;    n_p[536]=313;
  596. Xh_p[537]=69;    n_p[537]=351;
  597. Xh_p[538]=69;    n_p[538]=377;
  598. Xh_p[539]=69;    n_p[539]=540;
  599. Xh_p[540]=69;    n_p[540]=569;
  600. Xh_p[541]=69;    n_p[541]=909;
  601. Xh_p[542]=71;    n_p[542]=2;
  602. Xh_p[543]=71;    n_p[543]=14;
  603. Xh_p[544]=71;    n_p[544]=410;
  604. Xh_p[545]=73;    n_p[545]=7;
  605. Xh_p[546]=73;    n_p[546]=11;
  606. Xh_p[547]=73;    n_p[547]=19;
  607. Xh_p[548]=73;    n_p[548]=71;
  608. Xh_p[549]=73;    n_p[549]=79;
  609. Xh_p[550]=73;    n_p[550]=131;
  610. Xh_p[551]=75;    n_p[551]=1;
  611. Xh_p[552]=75;    n_p[552]=3;
  612. Xh_p[553]=75;    n_p[553]=5;
  613. Xh_p[554]=75;    n_p[554]=6;
  614. Xh_p[555]=75;    n_p[555]=18;
  615. Xh_p[556]=75;    n_p[556]=19;
  616. Xh_p[557]=75;    n_p[557]=20;
  617. Xh_p[558]=75;    n_p[558]=22;
  618. Xh_p[559]=75;    n_p[559]=28;
  619. Xh_p[560]=75;    n_p[560]=29;
  620. Xh_p[561]=75;    n_p[561]=39;
  621. Xh_p[562]=75;    n_p[562]=43;
  622. Xh_p[563]=75;    n_p[563]=49;
  623. Xh_p[564]=75;    n_p[564]=75;
  624. Xh_p[565]=75;    n_p[565]=85;
  625. Xh_p[566]=75;    n_p[566]=92;
  626. Xh_p[567]=75;    n_p[567]=111;
  627. Xh_p[568]=75;    n_p[568]=126;
  628. Xh_p[569]=75;    n_p[569]=136;
  629. Xh_p[570]=75;    n_p[570]=159;
  630. Xh_p[571]=75;    n_p[571]=162;
  631. Xh_p[572]=75;    n_p[572]=237;
  632. Xh_p[573]=75;    n_p[573]=349;
  633. Xh_p[574]=75;    n_p[574]=381;
  634. Xh_p[575]=75;    n_p[575]=767;
  635. Xh_p[576]=75;    n_p[576]=969;
  636. Xh_p[577]=77;    n_p[577]=2;
  637. Xh_p[578]=77;    n_p[578]=4;
  638. Xh_p[579]=77;    n_p[579]=14;
  639. Xh_p[580]=77;    n_p[580]=26;
  640. Xh_p[581]=77;    n_p[581]=58;
  641. Xh_p[582]=77;    n_p[582]=60;
  642. Xh_p[583]=77;    n_p[583]=64;
  643. Xh_p[584]=77;    n_p[584]=100;
  644. Xh_p[585]=77;    n_p[585]=122;
  645. Xh_p[586]=77;    n_p[586]=212;
  646. Xh_p[587]=77;    n_p[587]=566;
  647. Xh_p[588]=77;    n_p[588]=638;
  648. Xh_p[589]=79;    n_p[589]=1;
  649. Xh_p[590]=79;    n_p[590]=3;
  650. Xh_p[591]=79;    n_p[591]=7;
  651. Xh_p[592]=79;    n_p[592]=15;
  652. Xh_p[593]=79;    n_p[593]=43;
  653. Xh_p[594]=79;    n_p[594]=57;
  654. Xh_p[595]=79;    n_p[595]=61;
  655. Xh_p[596]=79;    n_p[596]=75;
  656. Xh_p[597]=79;    n_p[597]=145;
  657. Xh_p[598]=79;    n_p[598]=217;
  658. Xh_p[599]=79;    n_p[599]=247;
  659. Xh_p[600]=81;    n_p[600]=3;
  660. Xh_p[601]=81;    n_p[601]=5;
  661. Xh_p[602]=81;    n_p[602]=11;
  662. Xh_p[603]=81;    n_p[603]=17;
  663. Xh_p[604]=81;    n_p[604]=21;
  664. Xh_p[605]=81;    n_p[605]=27;
  665. Xh_p[606]=81;    n_p[606]=81;
  666. Xh_p[607]=81;    n_p[607]=101;
  667. Xh_p[608]=81;    n_p[608]=107;
  668. Xh_p[609]=81;    n_p[609]=327;
  669. Xh_p[610]=81;    n_p[610]=383;
  670. Xh_p[611]=81;    n_p[611]=387;
  671. Xh_p[612]=81;    n_p[612]=941;
  672. Xh_p[613]=83;    n_p[613]=2;
  673. Xh_p[614]=83;    n_p[614]=4;
  674. Xh_p[615]=83;    n_p[615]=8;
  675. Xh_p[616]=83;    n_p[616]=10;
  676. Xh_p[617]=83;    n_p[617]=14;
  677. Xh_p[618]=83;    n_p[618]=18;
  678. Xh_p[619]=83;    n_p[619]=22;
  679. Xh_p[620]=83;    n_p[620]=24;
  680. Xh_p[621]=83;    n_p[621]=26;
  681. Xh_p[622]=83;    n_p[622]=28;
  682. Xh_p[623]=83;    n_p[623]=36;
  683. Xh_p[624]=83;    n_p[624]=42;
  684. Xh_p[625]=83;    n_p[625]=58;
  685. Xh_p[626]=83;    n_p[626]=64;
  686. Xh_p[627]=83;    n_p[627]=78;
  687. Xh_p[628]=83;    n_p[628]=158;
  688. Xh_p[629]=83;    n_p[629]=198;
  689. Xh_p[630]=83;    n_p[630]=206;
  690. Xh_p[631]=83;    n_p[631]=424;
  691. Xh_p[632]=83;    n_p[632]=550;
  692. Xh_p[633]=83;    n_p[633]=676;
  693. Xh_p[634]=83;    n_p[634]=904;
  694. Xh_p[635]=85;    n_p[635]=5;
  695. Xh_p[636]=85;    n_p[636]=11;
  696. Xh_p[637]=85;    n_p[637]=71;
  697. Xh_p[638]=85;    n_p[638]=113;
  698. Xh_p[639]=85;    n_p[639]=115;
  699. Xh_p[640]=85;    n_p[640]=355;
  700. Xh_p[641]=85;    n_p[641]=473;
  701. Xh_p[642]=85;    n_p[642]=563;
  702. Xh_p[643]=85;    n_p[643]=883;
  703. Xh_p[644]=87;    n_p[644]=1;
  704. Xh_p[645]=87;    n_p[645]=2;
  705. Xh_p[646]=87;    n_p[646]=8;
  706. Xh_p[647]=87;    n_p[647]=9;
  707. Xh_p[648]=87;    n_p[648]=10;
  708. Xh_p[649]=87;    n_p[649]=12;
  709. Xh_p[650]=87;    n_p[650]=22;
  710. Xh_p[651]=87;    n_p[651]=29;
  711. Xh_p[652]=87;    n_p[652]=32;
  712. Xh_p[653]=87;    n_p[653]=50;
  713. Xh_p[654]=87;    n_p[654]=57;
  714. Xh_p[655]=87;    n_p[655]=69;
  715. Xh_p[656]=87;    n_p[656]=81;
  716. Xh_p[657]=87;    n_p[657]=122;
  717. Xh_p[658]=87;    n_p[658]=138;
  718. Xh_p[659]=87;    n_p[659]=200;
  719. Xh_p[660]=87;    n_p[660]=296;
  720. Xh_p[661]=87;    n_p[661]=514;
  721. Xh_p[662]=87;    n_p[662]=656;
  722. Xh_p[663]=87;    n_p[663]=682;
  723. Xh_p[664]=87;    n_p[664]=778;
  724. Xh_p[665]=87;    n_p[665]=881;
  725. Xh_p[666]=89;    n_p[666]=4;
  726. Xh_p[667]=89;    n_p[667]=8;
  727. Xh_p[668]=89;    n_p[668]=12;
  728. Xh_p[669]=89;    n_p[669]=24;
  729. Xh_p[670]=89;    n_p[670]=48;
  730. Xh_p[671]=89;    n_p[671]=52;
  731. Xh_p[672]=89;    n_p[672]=64;
  732. Xh_p[673]=89;    n_p[673]=84;
  733. Xh_p[674]=89;    n_p[674]=96;
  734. Xh_p[675]=91;    n_p[675]=1;
  735. Xh_p[676]=91;    n_p[676]=3;
  736. Xh_p[677]=91;    n_p[677]=9;
  737. Xh_p[678]=91;    n_p[678]=13;
  738. Xh_p[679]=91;    n_p[679]=15;
  739. Xh_p[680]=91;    n_p[680]=17;
  740. Xh_p[681]=91;    n_p[681]=19;
  741. Xh_p[682]=91;    n_p[682]=23;
  742. Xh_p[683]=91;    n_p[683]=47;
  743. Xh_p[684]=91;    n_p[684]=57;
  744. Xh_p[685]=91;    n_p[685]=67;
  745. Xh_p[686]=91;    n_p[686]=73;
  746. Xh_p[687]=91;    n_p[687]=77;
  747. Xh_p[688]=91;    n_p[688]=81;
  748. Xh_p[689]=91;    n_p[689]=83;
  749. Xh_p[690]=91;    n_p[690]=191;
  750. Xh_p[691]=91;    n_p[691]=301;
  751. Xh_p[692]=91;    n_p[692]=321;
  752. Xh_p[693]=91;    n_p[693]=435;
  753. Xh_p[694]=91;    n_p[694]=867;
  754. Xh_p[695]=91;    n_p[695]=869;
  755. Xh_p[696]=91;    n_p[696]=917;
  756. Xh_p[697]=93;    n_p[697]=3;
  757. Xh_p[698]=93;    n_p[698]=4;
  758. Xh_p[699]=93;    n_p[699]=7;
  759. Xh_p[700]=93;    n_p[700]=10;
  760. Xh_p[701]=93;    n_p[701]=15;
  761. Xh_p[702]=93;    n_p[702]=18;
  762. Xh_p[703]=93;    n_p[703]=19;
  763. Xh_p[704]=93;    n_p[704]=24;
  764. Xh_p[705]=93;    n_p[705]=27;
  765. Xh_p[706]=93;    n_p[706]=39;
  766. Xh_p[707]=93;    n_p[707]=60;
  767. Xh_p[708]=93;    n_p[708]=84;
  768. Xh_p[709]=93;    n_p[709]=111;
  769. Xh_p[710]=93;    n_p[710]=171;
  770. Xh_p[711]=93;    n_p[711]=192;
  771. Xh_p[712]=93;    n_p[712]=222;
  772. Xh_p[713]=93;    n_p[713]=639;
  773. Xh_p[714]=93;    n_p[714]=954;
  774. Xh_p[715]=95;    n_p[715]=2;
  775. Xh_p[716]=95;    n_p[716]=6;
  776. Xh_p[717]=95;    n_p[717]=26;
  777. Xh_p[718]=95;    n_p[718]=32;
  778. Xh_p[719]=95;    n_p[719]=66;
  779. Xh_p[720]=95;    n_p[720]=128;
  780. Xh_p[721]=95;    n_p[721]=170;
  781. Xh_p[722]=95;    n_p[722]=288;
  782. Xh_p[723]=95;    n_p[723]=320;
  783. Xh_p[724]=95;    n_p[724]=470;
  784. Xh_p[725]=97;    n_p[725]=1;
  785. Xh_p[726]=97;    n_p[726]=9;
  786. Xh_p[727]=97;    n_p[727]=45;
  787. Xh_p[728]=97;    n_p[728]=177;
  788. Xh_p[729]=97;    n_p[729]=585;
  789. Xh_p[730]=99;    n_p[730]=1;
  790. Xh_p[731]=99;    n_p[731]=4;
  791. Xh_p[732]=99;    n_p[732]=5;
  792. Xh_p[733]=99;    n_p[733]=7;
  793. Xh_p[734]=99;    n_p[734]=8;
  794. Xh_p[735]=99;    n_p[735]=11;
  795. Xh_p[736]=99;    n_p[736]=19;
  796. Xh_p[737]=99;    n_p[737]=25;
  797. Xh_p[738]=99;    n_p[738]=28;
  798. Xh_p[739]=99;    n_p[739]=35;
  799. Xh_p[740]=99;    n_p[740]=65;
  800. Xh_p[741]=99;    n_p[741]=79;
  801. Xh_p[742]=99;    n_p[742]=212;
  802. Xh_p[743]=99;    n_p[743]=271;
  803. Xh_p[744]=99;    n_p[744]=361;
  804. Xh_p[745]=99;    n_p[745]=461;
  805. Xh_p[746]=101;    n_p[746]=10;
  806. Xh_p[747]=101;    n_p[747]=18;
  807. Xh_p[748]=101;    n_p[748]=54;
  808. Xh_p[749]=101;    n_p[749]=70;
  809. Xh_p[750]=103;    n_p[750]=3;
  810. Xh_p[751]=103;    n_p[751]=7;
  811. Xh_p[752]=103;    n_p[752]=11;
  812. Xh_p[753]=103;    n_p[753]=19;
  813. Xh_p[754]=103;    n_p[754]=63;
  814. Xh_p[755]=103;    n_p[755]=75;
  815. Xh_p[756]=103;    n_p[756]=95;
  816. Xh_p[757]=103;    n_p[757]=127;
  817. Xh_p[758]=103;    n_p[758]=155;
  818. Xh_p[759]=103;    n_p[759]=163;
  819. Xh_p[760]=103;    n_p[760]=171;
  820. Xh_p[761]=103;    n_p[761]=283;
  821. Xh_p[762]=103;    n_p[762]=563;
  822. Xh_p[763]=105;    n_p[763]=2;
  823. Xh_p[764]=105;    n_p[764]=3;
  824. Xh_p[765]=105;    n_p[765]=5;
  825. Xh_p[766]=105;    n_p[766]=6;
  826. Xh_p[767]=105;    n_p[767]=8;
  827. Xh_p[768]=105;    n_p[768]=9;
  828. Xh_p[769]=105;    n_p[769]=25;
  829. Xh_p[770]=105;    n_p[770]=32;
  830. Xh_p[771]=105;    n_p[771]=65;
  831. Xh_p[772]=105;    n_p[772]=113;
  832. Xh_p[773]=105;    n_p[773]=119;
  833. Xh_p[774]=105;    n_p[774]=155;
  834. Xh_p[775]=105;    n_p[775]=177;
  835. Xh_p[776]=105;    n_p[776]=299;
  836. Xh_p[777]=105;    n_p[777]=335;
  837. Xh_p[778]=105;    n_p[778]=426;
  838. Xh_p[779]=105;    n_p[779]=462;
  839. Xh_p[780]=105;    n_p[780]=617;
  840. Xh_p[781]=105;    n_p[781]=896;
  841. Xh_p[782]=107;    n_p[782]=10;
  842. Xh_p[783]=107;    n_p[783]=12;
  843. Xh_p[784]=107;    n_p[784]=18;
  844. Xh_p[785]=107;    n_p[785]=24;
  845. Xh_p[786]=107;    n_p[786]=28;
  846. Xh_p[787]=107;    n_p[787]=40;
  847. Xh_p[788]=107;    n_p[788]=90;
  848. Xh_p[789]=107;    n_p[789]=132;
  849. Xh_p[790]=107;    n_p[790]=214;
  850. Xh_p[791]=107;    n_p[791]=238;
  851. Xh_p[792]=107;    n_p[792]=322;
  852. Xh_p[793]=107;    n_p[793]=532;
  853. Xh_p[794]=107;    n_p[794]=858;
  854. Xh_p[795]=107;    n_p[795]=940;
  855. Xh_p[796]=109;    n_p[796]=9;
  856. Xh_p[797]=109;    n_p[797]=149;
  857. Xh_p[798]=109;    n_p[798]=177;
  858. Xh_p[799]=109;    n_p[799]=419;
  859. Xh_p[800]=109;    n_p[800]=617;
  860. Xh_p[801]=113;    n_p[801]=8;
  861. Xh_p[802]=113;    n_p[802]=14;
  862. Xh_p[803]=113;    n_p[803]=74;
  863. Xh_p[804]=113;    n_p[804]=80;
  864. Xh_p[805]=113;    n_p[805]=274;
  865. Xh_p[806]=113;    n_p[806]=334;
  866. Xh_p[807]=113;    n_p[807]=590;
  867. Xh_p[808]=113;    n_p[808]=608;
  868. Xh_p[809]=113;    n_p[809]=614;
  869. Xh_p[810]=113;    n_p[810]=650;
  870. Xh_p[811]=115;    n_p[811]=1;
  871. Xh_p[812]=115;    n_p[812]=3;
  872. Xh_p[813]=115;    n_p[813]=11;
  873. Xh_p[814]=115;    n_p[814]=13;
  874. Xh_p[815]=115;    n_p[815]=19;
  875. Xh_p[816]=115;    n_p[816]=21;
  876. Xh_p[817]=115;    n_p[817]=31;
  877. Xh_p[818]=115;    n_p[818]=49;
  878. Xh_p[819]=115;    n_p[819]=59;
  879. Xh_p[820]=115;    n_p[820]=69;
  880. Xh_p[821]=115;    n_p[821]=73;
  881. Xh_p[822]=115;    n_p[822]=115;
  882. Xh_p[823]=115;    n_p[823]=129;
  883. Xh_p[824]=115;    n_p[824]=397;
  884. Xh_p[825]=115;    n_p[825]=623;
  885. Xh_p[826]=115;    n_p[826]=769;
  886. Xh_p[827]=119;    n_p[827]=12;
  887. Xh_p[828]=119;    n_p[828]=16;
  888. Xh_p[829]=119;    n_p[829]=52;
  889. Xh_p[830]=119;    n_p[830]=160;
  890. Xh_p[831]=119;    n_p[831]=192;
  891. Xh_p[832]=119;    n_p[832]=216;
  892. Xh_p[833]=119;    n_p[833]=376;
  893. Xh_p[834]=119;    n_p[834]=436;
  894. Xh_p[835]=121;    n_p[835]=1;
  895. Xh_p[836]=121;    n_p[836]=3;
  896. Xh_p[837]=121;    n_p[837]=21;
  897. Xh_p[838]=121;    n_p[838]=27;
  898. Xh_p[839]=121;    n_p[839]=37;
  899. Xh_p[840]=121;    n_p[840]=43;
  900. Xh_p[841]=121;    n_p[841]=91;
  901. Xh_p[842]=121;    n_p[842]=117;
  902. Xh_p[843]=121;    n_p[843]=141;
  903. Xh_p[844]=121;    n_p[844]=163;
  904. Xh_p[845]=121;    n_p[845]=373;
  905. Xh_p[846]=121;    n_p[846]=421;
  906. Xh_p[847]=125;    n_p[847]=2;
  907. Xh_p[848]=125;    n_p[848]=4;
  908. Xh_p[849]=125;    n_p[849]=44;
  909. Xh_p[850]=125;    n_p[850]=182;
  910. Xh_p[851]=125;    n_p[851]=496;
  911. Xh_p[852]=125;    n_p[852]=904;
  912. Xh_p[853]=127;    n_p[853]=25;
  913. Xh_p[854]=127;    n_p[854]=113;
  914. Xh_p[855]=131;    n_p[855]=2;
  915. Xh_p[856]=131;    n_p[856]=14;
  916. Xh_p[857]=131;    n_p[857]=34;
  917. Xh_p[858]=131;    n_p[858]=38;
  918. Xh_p[859]=131;    n_p[859]=42;
  919. Xh_p[860]=131;    n_p[860]=78;
  920. Xh_p[861]=131;    n_p[861]=90;
  921. Xh_p[862]=131;    n_p[862]=178;
  922. Xh_p[863]=131;    n_p[863]=778;
  923. Xh_p[864]=131;    n_p[864]=974;
  924. Xh_p[865]=133;    n_p[865]=3;
  925. Xh_p[866]=133;    n_p[866]=11;
  926. Xh_p[867]=133;    n_p[867]=15;
  927. Xh_p[868]=133;    n_p[868]=19;
  928. Xh_p[869]=133;    n_p[869]=31;
  929. Xh_p[870]=133;    n_p[870]=59;
  930. Xh_p[871]=133;    n_p[871]=75;
  931. Xh_p[872]=133;    n_p[872]=103;
  932. Xh_p[873]=133;    n_p[873]=163;
  933. Xh_p[874]=133;    n_p[874]=235;
  934. Xh_p[875]=133;    n_p[875]=375;
  935. Xh_p[876]=133;    n_p[876]=615;
  936. Xh_p[877]=133;    n_p[877]=767;
  937. Xh_p[878]=137;    n_p[878]=2;
  938. Xh_p[879]=137;    n_p[879]=18;
  939. Xh_p[880]=137;    n_p[880]=38;
  940. Xh_p[881]=137;    n_p[881]=62;
  941. Xh_p[882]=139;    n_p[882]=1;
  942. Xh_p[883]=139;    n_p[883]=5;
  943. Xh_p[884]=139;    n_p[884]=7;
  944. Xh_p[885]=139;    n_p[885]=9;
  945. Xh_p[886]=139;    n_p[886]=15;
  946. Xh_p[887]=139;    n_p[887]=19;
  947. Xh_p[888]=139;    n_p[888]=21;
  948. Xh_p[889]=139;    n_p[889]=35;
  949. Xh_p[890]=139;    n_p[890]=37;
  950. Xh_p[891]=139;    n_p[891]=39;
  951. Xh_p[892]=139;    n_p[892]=41;
  952. Xh_p[893]=139;    n_p[893]=49;
  953. Xh_p[894]=139;    n_p[894]=69;
  954. Xh_p[895]=139;    n_p[895]=111;
  955. Xh_p[896]=139;    n_p[896]=115;
  956. Xh_p[897]=139;    n_p[897]=141;
  957. Xh_p[898]=139;    n_p[898]=159;
  958. Xh_p[899]=139;    n_p[899]=181;
  959. Xh_p[900]=139;    n_p[900]=201;
  960. Xh_p[901]=139;    n_p[901]=217;
  961. Xh_p[902]=139;    n_p[902]=487;
  962. Xh_p[903]=139;    n_p[903]=567;
  963. Xh_p[904]=139;    n_p[904]=677;
  964. Xh_p[905]=139;    n_p[905]=765;
  965. Xh_p[906]=139;    n_p[906]=811;
  966. Xh_p[907]=139;    n_p[907]=841;
  967. Xh_p[908]=139;    n_p[908]=917;
  968. Xh_p[909]=143;    n_p[909]=2;
  969. Xh_p[910]=143;    n_p[910]=4;
  970. Xh_p[911]=143;    n_p[911]=6;
  971. Xh_p[912]=143;    n_p[912]=8;
  972. Xh_p[913]=143;    n_p[913]=12;
  973. Xh_p[914]=143;    n_p[914]=18;
  974. Xh_p[915]=143;    n_p[915]=26;
  975. Xh_p[916]=143;    n_p[916]=32;
  976. Xh_p[917]=143;    n_p[917]=34;
  977. Xh_p[918]=143;    n_p[918]=36;
  978. Xh_p[919]=143;    n_p[919]=42;
  979. Xh_p[920]=143;    n_p[920]=60;
  980. Xh_p[921]=143;    n_p[921]=78;
  981. Xh_p[922]=143;    n_p[922]=82;
  982. Xh_p[923]=143;    n_p[923]=84;
  983. Xh_p[924]=143;    n_p[924]=88;
  984. Xh_p[925]=143;    n_p[925]=154;
  985. Xh_p[926]=143;    n_p[926]=174;
  986. Xh_p[927]=143;    n_p[927]=208;
  987. Xh_p[928]=143;    n_p[928]=256;
  988. Xh_p[929]=143;    n_p[929]=366;
  989. Xh_p[930]=143;    n_p[930]=448;
  990. Xh_p[931]=143;    n_p[931]=478;
  991. Xh_p[932]=143;    n_p[932]=746;
  992. Xh_p[933]=145;    n_p[933]=5;
  993. Xh_p[934]=145;    n_p[934]=13;
  994. Xh_p[935]=145;    n_p[935]=15;
  995. Xh_p[936]=145;    n_p[936]=31;
  996. Xh_p[937]=145;    n_p[937]=77;
  997. Xh_p[938]=145;    n_p[938]=151;
  998. Xh_p[939]=145;    n_p[939]=181;
  999. Xh_p[940]=145;    n_p[940]=245;
  1000. Xh_p[941]=145;    n_p[941]=445;
  1001. Xh_p[942]=145;    n_p[942]=447;
  1002. Xh_p[943]=145;    n_p[943]=883;
  1003. Xh_p[944]=149;    n_p[944]=4;
  1004. Xh_p[945]=149;    n_p[945]=16;
  1005. Xh_p[946]=149;    n_p[946]=48;
  1006. Xh_p[947]=149;    n_p[947]=60;
  1007. Xh_p[948]=149;    n_p[948]=240;
  1008. Xh_p[949]=149;    n_p[949]=256;
  1009. Xh_p[950]=149;    n_p[950]=304;
  1010. Xh_p[951]=151;    n_p[951]=5;
  1011. Xh_p[952]=151;    n_p[952]=221;
  1012. Xh_p[953]=151;    n_p[953]=641;
  1013. Xh_p[954]=155;    n_p[954]=2;
  1014. Xh_p[955]=155;    n_p[955]=8;
  1015. Xh_p[956]=155;    n_p[956]=14;
  1016. Xh_p[957]=155;    n_p[957]=16;
  1017. Xh_p[958]=155;    n_p[958]=44;
  1018. Xh_p[959]=155;    n_p[959]=46;
  1019. Xh_p[960]=155;    n_p[960]=82;
  1020. Xh_p[961]=155;    n_p[961]=172;
  1021. Xh_p[962]=155;    n_p[962]=196;
  1022. Xh_p[963]=155;    n_p[963]=254;
  1023. Xh_p[964]=155;    n_p[964]=556;
  1024. Xh_p[965]=155;    n_p[965]=806;
  1025. Xh_p[966]=157;    n_p[966]=1;
  1026. Xh_p[967]=157;    n_p[967]=5;
  1027. Xh_p[968]=157;    n_p[968]=33;
  1028. Xh_p[969]=157;    n_p[969]=121;
  1029. Xh_p[970]=157;    n_p[970]=125;
  1030. Xh_p[971]=157;    n_p[971]=305;
  1031. Xh_p[972]=157;    n_p[972]=445;
  1032. Xh_p[973]=157;    n_p[973]=473;
  1033. Xh_p[974]=157;    n_p[974]=513;
  1034. Xh_p[975]=161;    n_p[975]=2;
  1035. Xh_p[976]=161;    n_p[976]=6;
  1036. Xh_p[977]=161;    n_p[977]=18;
  1037. Xh_p[978]=161;    n_p[978]=22;
  1038. Xh_p[979]=161;    n_p[979]=34;
  1039. Xh_p[980]=161;    n_p[980]=54;
  1040. Xh_p[981]=161;    n_p[981]=98;
  1041. Xh_p[982]=161;    n_p[982]=122;
  1042. Xh_p[983]=161;    n_p[983]=146;
  1043. Xh_p[984]=161;    n_p[984]=222;
  1044. Xh_p[985]=161;    n_p[985]=306;
  1045. Xh_p[986]=161;    n_p[986]=422;
  1046. Xh_p[987]=161;    n_p[987]=654;
  1047. Xh_p[988]=161;    n_p[988]=682;
  1048. Xh_p[989]=161;    n_p[989]=862;
  1049. Xh_p[990]=163;    n_p[990]=3;
  1050. Xh_p[991]=163;    n_p[991]=31;
  1051. Xh_p[992]=163;    n_p[992]=63;
  1052. Xh_p[993]=163;    n_p[993]=303;
  1053. Xh_p[994]=167;    n_p[994]=4;
  1054. Xh_p[995]=167;    n_p[995]=6;
  1055. Xh_p[996]=167;    n_p[996]=8;
  1056. Xh_p[997]=167;    n_p[997]=10;
  1057. Xh_p[998]=167;    n_p[998]=16;
  1058. Xh_p[999]=167;    n_p[999]=32;
  1059. Xh_p[1000]=167;    n_p[1000]=38;
  1060. Xh_p[1001]=167;    n_p[1001]=42;
  1061. Xh_p[1002]=167;    n_p[1002]=52;
  1062. Xh_p[1003]=167;    n_p[1003]=456;
  1063. Xh_p[1004]=167;    n_p[1004]=576;
  1064. Xh_p[1005]=167;    n_p[1005]=668;
  1065. Xh_p[1006]=169;    n_p[1006]=1;
  1066. Xh_p[1007]=169;    n_p[1007]=5;
  1067. Xh_p[1008]=169;    n_p[1008]=11;
  1068. Xh_p[1009]=169;    n_p[1009]=17;
  1069. Xh_p[1010]=169;    n_p[1010]=67;
  1070. Xh_p[1011]=169;    n_p[1011]=137;
  1071. Xh_p[1012]=169;    n_p[1012]=157;
  1072. Xh_p[1013]=169;    n_p[1013]=203;
  1073. Xh_p[1014]=169;    n_p[1014]=209;
  1074. Xh_p[1015]=169;    n_p[1015]=227;
  1075. Xh_p[1016]=169;    n_p[1016]=263;
  1076. Xh_p[1017]=169;    n_p[1017]=917;
  1077. Xh_p[1018]=173;    n_p[1018]=2;
  1078. Xh_p[1019]=173;    n_p[1019]=4;
  1079. Xh_p[1020]=173;    n_p[1020]=6;
  1080. Xh_p[1021]=173;    n_p[1021]=16;
  1081. Xh_p[1022]=173;    n_p[1022]=32;
  1082. Xh_p[1023]=173;    n_p[1023]=50;
  1083. Xh_p[1024]=173;    n_p[1024]=76;
  1084. Xh_p[1025]=173;    n_p[1025]=80;
  1085. Xh_p[1026]=173;    n_p[1026]=96;
  1086. Xh_p[1027]=173;    n_p[1027]=104;
  1087. Xh_p[1028]=173;    n_p[1028]=162;
  1088. Xh_p[1029]=173;    n_p[1029]=212;
  1089. Xh_p[1030]=173;    n_p[1030]=230;
  1090. Xh_p[1031]=173;    n_p[1031]=260;
  1091. Xh_p[1032]=173;    n_p[1032]=480;
  1092. Xh_p[1033]=173;    n_p[1033]=612;
  1093. Xh_p[1034]=175;    n_p[1034]=1;
  1094. Xh_p[1035]=175;    n_p[1035]=3;
  1095. Xh_p[1036]=175;    n_p[1036]=9;
  1096. Xh_p[1037]=175;    n_p[1037]=21;
  1097. Xh_p[1038]=175;    n_p[1038]=23;
  1098. Xh_p[1039]=175;    n_p[1039]=41;
  1099. Xh_p[1040]=175;    n_p[1040]=47;
  1100. Xh_p[1041]=175;    n_p[1041]=57;
  1101. Xh_p[1042]=175;    n_p[1042]=69;
  1102. Xh_p[1043]=175;    n_p[1043]=83;
  1103. Xh_p[1044]=175;    n_p[1044]=193;
  1104. Xh_p[1045]=175;    n_p[1045]=249;
  1105. Xh_p[1046]=175;    n_p[1046]=291;
  1106. Xh_p[1047]=175;    n_p[1047]=421;
  1107. Xh_p[1048]=175;    n_p[1048]=433;
  1108. Xh_p[1049]=175;    n_p[1049]=997;
  1109. Xh_p[1050]=179;    n_p[1050]=8;
  1110. Xh_p[1051]=179;    n_p[1051]=68;
  1111. Xh_p[1052]=179;    n_p[1052]=108;
  1112. Xh_p[1053]=181;    n_p[1053]=3;
  1113. Xh_p[1054]=181;    n_p[1054]=5;
  1114. Xh_p[1055]=181;    n_p[1055]=7;
  1115. Xh_p[1056]=181;    n_p[1056]=9;
  1116. Xh_p[1057]=181;    n_p[1057]=11;
  1117. Xh_p[1058]=181;    n_p[1058]=17;
  1118. Xh_p[1059]=181;    n_p[1059]=23;
  1119. Xh_p[1060]=181;    n_p[1060]=31;
  1120. Xh_p[1061]=181;    n_p[1061]=35;
  1121. Xh_p[1062]=181;    n_p[1062]=43;
  1122. Xh_p[1063]=181;    n_p[1063]=47;
  1123. Xh_p[1064]=181;    n_p[1064]=83;
  1124. Xh_p[1065]=181;    n_p[1065]=85;
  1125. Xh_p[1066]=181;    n_p[1066]=99;
  1126. Xh_p[1067]=181;    n_p[1067]=101;
  1127. Xh_p[1068]=181;    n_p[1068]=195;
  1128. Xh_p[1069]=181;    n_p[1069]=267;
  1129. Xh_p[1070]=181;    n_p[1070]=281;
  1130. Xh_p[1071]=181;    n_p[1071]=363;
  1131. Xh_p[1072]=181;    n_p[1072]=391;
  1132. Xh_p[1073]=181;    n_p[1073]=519;
  1133. Xh_p[1074]=181;    n_p[1074]=623;
  1134. Xh_p[1075]=181;    n_p[1075]=653;
  1135. Xh_p[1076]=181;    n_p[1076]=673;
  1136. Xh_p[1077]=181;    n_p[1077]=701;
  1137. Xh_p[1078]=185;    n_p[1078]=2;
  1138. Xh_p[1079]=185;    n_p[1079]=6;
  1139. Xh_p[1080]=185;    n_p[1080]=10;
  1140. Xh_p[1081]=185;    n_p[1081]=18;
  1141. Xh_p[1082]=185;    n_p[1082]=26;
  1142. Xh_p[1083]=185;    n_p[1083]=40;
  1143. Xh_p[1084]=185;    n_p[1084]=46;
  1144. Xh_p[1085]=185;    n_p[1085]=78;
  1145. Xh_p[1086]=185;    n_p[1086]=230;
  1146. Xh_p[1087]=185;    n_p[1087]=542;
  1147. Xh_p[1088]=187;    n_p[1088]=1;
  1148. Xh_p[1089]=187;    n_p[1089]=17;
  1149. Xh_p[1090]=187;    n_p[1090]=21;
  1150. Xh_p[1091]=187;    n_p[1091]=53;
  1151. Xh_p[1092]=187;    n_p[1092]=253;
  1152. Xh_p[1093]=191;    n_p[1093]=226;
  1153. Xh_p[1094]=193;    n_p[1094]=3;
  1154. Xh_p[1095]=193;    n_p[1095]=15;
  1155. Xh_p[1096]=193;    n_p[1096]=27;
  1156. Xh_p[1097]=193;    n_p[1097]=63;
  1157. Xh_p[1098]=193;    n_p[1098]=87;        /* 193*2^87-1 is NOT prime */
  1158. Xh_p[1099]=193;    n_p[1099]=135;
  1159. Xh_p[1100]=193;    n_p[1100]=543;
  1160. Xh_p[1101]=197;    n_p[1101]=2;
  1161. Xh_p[1102]=197;    n_p[1102]=16;
  1162. Xh_p[1103]=197;    n_p[1103]=20;
  1163. Xh_p[1104]=197;    n_p[1104]=22;
  1164. Xh_p[1105]=197;    n_p[1105]=40;
  1165. Xh_p[1106]=197;    n_p[1106]=82;
  1166. Xh_p[1107]=197;    n_p[1107]=112;
  1167. Xh_p[1108]=197;    n_p[1108]=178;
  1168. Xh_p[1109]=197;    n_p[1109]=230;
  1169. Xh_p[1110]=197;    n_p[1110]=302;
  1170. Xh_p[1111]=197;    n_p[1111]=304;
  1171. Xh_p[1112]=197;    n_p[1112]=328;
  1172. Xh_p[1113]=197;    n_p[1113]=374;
  1173. Xh_p[1114]=197;    n_p[1114]=442;
  1174. Xh_p[1115]=197;    n_p[1115]=472;
  1175. Xh_p[1116]=197;    n_p[1116]=500;
  1176. Xh_p[1117]=197;    n_p[1117]=580;
  1177. Xh_p[1118]=197;    n_p[1118]=694;
  1178. Xh_p[1119]=199;    n_p[1119]=1;
  1179. Xh_p[1120]=199;    n_p[1120]=5;
  1180. Xh_p[1121]=199;    n_p[1121]=7;
  1181. Xh_p[1122]=199;    n_p[1122]=15;
  1182. Xh_p[1123]=199;    n_p[1123]=19;
  1183. Xh_p[1124]=199;    n_p[1124]=23;
  1184. Xh_p[1125]=199;    n_p[1125]=25;
  1185. Xh_p[1126]=199;    n_p[1126]=27;
  1186. Xh_p[1127]=199;    n_p[1127]=43;
  1187. Xh_p[1128]=199;    n_p[1128]=65;
  1188. Xh_p[1129]=199;    n_p[1129]=99;
  1189. Xh_p[1130]=199;    n_p[1130]=125;
  1190. Xh_p[1131]=199;    n_p[1131]=141;
  1191. Xh_p[1132]=199;    n_p[1132]=165;
  1192. Xh_p[1133]=199;    n_p[1133]=201;
  1193. Xh_p[1134]=199;    n_p[1134]=211;        /* 199*2^221-1 is NOT prime */
  1194. Xh_p[1135]=199;    n_p[1135]=331;
  1195. Xh_p[1136]=199;    n_p[1136]=369;
  1196. Xh_p[1137]=199;    n_p[1137]=389;
  1197. Xh_p[1138]=199;    n_p[1138]=445;
  1198. Xh_p[1139]=199;    n_p[1139]=461;
  1199. Xh_p[1140]=199;    n_p[1140]=463;
  1200. Xh_p[1141]=199;    n_p[1141]=467;
  1201. Xh_p[1142]=199;    n_p[1142]=513;
  1202. Xh_p[1143]=199;    n_p[1143]=583;
  1203. Xh_p[1144]=199;    n_p[1144]=835;
  1204. X
  1205. X/*
  1206. X * lucas_chk - check the lucas function on known primes
  1207. X *
  1208. X * This function tests entries in the above h_p, n_p table
  1209. X * when n_p is below a given limit.
  1210. X *
  1211. X * input:
  1212. X *    high_n    skip tests on n_p[i] > high_n
  1213. X *
  1214. X * returns:
  1215. X *    1    all is ok
  1216. X *    0    something went wrong
  1217. X */
  1218. Xdefine
  1219. Xlucas_chk(high_n)
  1220. X{
  1221. X    local i;    /* index */
  1222. X    local result;    /* 0 => non-prime, 1 => prime, -1 => bad test */
  1223. X    local error;    /* number of errors and bad tests found */
  1224. X
  1225. X    /*
  1226. X     * firewall
  1227. X     */
  1228. X    if (!isint(high_n)) {
  1229. X        ldebug("test_lucas", "high_n is non-int");
  1230. X        quit "FATAL: bad args: high_n must be an integer";
  1231. X    }
  1232. X
  1233. X    /*
  1234. X     * scan thru the above prime table
  1235. X     */
  1236. X    error = 0;
  1237. X    for (i=0; i < prime_cnt; ++i) {
  1238. X
  1239. X        /* skip primes where h>=2^n */
  1240. X        if (highbit(h_p[i]) >= n_p[i]) {
  1241. X            if (dbg != 0) {
  1242. X                print "h>=2^n skip:", h_p[i]:"*2^":n_p[i]:"-1";
  1243. X            }
  1244. X            continue;
  1245. X        }
  1246. X
  1247. X        /* test the prime if it is small enough */
  1248. X        if (n_p[i] <= high_n) {
  1249. X
  1250. X            /* test the table value */
  1251. X            result = lucas(h_p[i], n_p[i]);
  1252. X
  1253. X            /* report the test */
  1254. X            if (result == 0) {
  1255. X                print "ERROR, bad primality test of",\
  1256. X                    h_p[i]:"*2^":n_p[i]:"-1";
  1257. X                ++error;
  1258. X            } else if (result == 1) {
  1259. X                print h_p[i]:"*2^":n_p[i]:"-1 is prime";
  1260. X            } else if (result == -1) {
  1261. X                print "ERROR, failed to compute v(1) for",\
  1262. X                    h_p[i]:"*2^":n_p[i]:"-1";
  1263. X                ++error;
  1264. X            } else {
  1265. X                print "ERROR, bogus return value:", result;
  1266. X                ++error;
  1267. X            }
  1268. X        }
  1269. X    }
  1270. X
  1271. X    /* return the full status */
  1272. X    if (error == 0) {
  1273. X        print "lucas_chk(":high_n:") passed";
  1274. X        return 1;
  1275. X    } else if (error == 1) {
  1276. X        print "lucas_chk(":high_n:") failed", error, "test";
  1277. X        return 0;
  1278. X    } else {
  1279. X        print "lucas_chk(":high_n:") failed", error, "tests";
  1280. X        return 0;
  1281. X    }
  1282. X}
  1283. X
  1284. Xglobal lib_debug;
  1285. Xif (!isnum(lib_debug) || lib_debug>0) print "lucas_chk(high_n) defined";
  1286. END_OF_FILE
  1287. if test 33284 -ne `wc -c <'lib/lucas_chk.cal'`; then
  1288.     echo shar: \"'lib/lucas_chk.cal'\" unpacked with wrong size!
  1289. fi
  1290. # end of 'lib/lucas_chk.cal'
  1291. fi
  1292. echo shar: End of archive 17 \(of 21\).
  1293. cp /dev/null ark17isdone
  1294. MISSING=""
  1295. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ; do
  1296.     if test ! -f ark${I}isdone ; then
  1297.     MISSING="${MISSING} ${I}"
  1298.     fi
  1299. done
  1300. if test "${MISSING}" = "" ; then
  1301.     echo You have unpacked all 21 archives.
  1302.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1303. else
  1304.     echo You still need to unpack the following archives:
  1305.     echo "        " ${MISSING}
  1306. fi
  1307. ##  End of shell archive.
  1308. exit 0
  1309.