C'est du c++, il faut entrer un fichier 10.jo pour généré un fichier 10.wav
pour compiler : g++ convertisseur.cpp -o convertisseur -Wall
// pour compiler g++ convertisseur.cpp -o convertisseur -Wall //converti un fichier nommé 10.jo en 10.wav #include <stdio.h> #include <stdlib.h> #include <stdio.h> #include <iostream> #include <sys/types.h> #include <signal.h> #include <unistd.h> #define total1 256 #define total 256 #define combientab1 1 #define combientab2 2 #define combientab3 3 #define combientab4 4 #define combientab5 5 #define combientab6 6 #define combientab7 7 #define combientab8 8 #define combientab9 9 #define combientab10 10 #define combientab11 11 #define combientab12 12 #define combientab13 13 #define combientab14 14 #define combientab15 15 #define combientab16 16 #define combientab17 17 #define combientab18 18 #define combientab19 19 #define combientab20 20 #define combientab21 21 #define combientab22 22 #define combientab23 23 #define combientab24 24 #define combientab25 25 #define combientab26 26 #define combientab27 27 #define combientab28 28 #define combientab29 29 #define combientab30 30 #define combientab31 31 #define combientab32 32 #define combientab33 33 #define combientab34 34 #define combientab35 35 #define combientab36 36 #define combientab37 37 #define combientab38 38 #define combientab39 39 #define combientab40 40 #define combientab41 41 #define combientab42 42 #define combientab43 43 #define combientab44 44 #define combientab45 45 #define combientab46 46 #define combientab47 47 #define combientab48 48 #define combientab49 49 #define combientab50 50 #define combientab51 51 #define combientab52 52 #define combientab53 53 #define combientab54 54 #define combientab55 55 #define combientab56 56 #define combientab57 57 #define combientab58 58 #define combientab59 59 #define combientab60 60 #define combientab61 61 #define combientab62 62 #define combientab63 63 #define combientab64 64 #define combientab65 65 #define combientab66 66 #define combientab67 67 #define combientab68 68 #define combientab69 69 #define combientab70 70 #define combientab71 71 #define combientab72 72 #define combientab73 73 #define combientab74 74 #define combientab75 75 #define combientab76 76 #define combientab77 77 #define combientab78 78 #define combientab79 79 #define combientab80 80 #define combientab81 81 #define combientab82 82 #define combientab83 83 #define combientab84 84 #define combientab85 85 #define combientab86 86 #define combientab87 87 #define combientab88 88 #define combientab89 89 #define combientab90 90 #define combientab91 91 #define combientab92 92 #define combientab93 93 #define combientab94 94 #define combientab95 95 #define combientab96 96 #define combientab97 97 #define combientab98 98 #define combientab99 99 #define combientab100 100 #define combientab101 101 #define combientab102 102 #define combientab103 103 #define combientab104 104 #define combientab105 105 #define combientab106 106 #define combientab107 107 #define combientab108 108 #define combientab109 109 #define combientab110 110 #define combientab111 111 #define combientab112 112 #define combientab113 113 #define combientab114 114 #define combientab115 115 #define combientab116 116 #define combientab117 117 #define combientab118 118 #define combientab119 119 #define combientab120 120 #define combientab121 121 #define combientab122 122 #define combientab123 123 #define combientab124 124 #define combientab125 125 #define combientab126 126 #define combientab127 127 #define combientab128 128 #define NumDeTab 128 // Nom du fichier piste char awav[32]; // Nom du fichier piste char ajo[32]; //char awav[] = {"1.wav"}; //char ajo[] = {"1.jo"}; double codebash; // Calcule le nombre de points du fichier jo fichierjo static int nbdepointsFichierJo(FILE* fichierjo) { // Retour au début du fichier rewind(fichierjo); // Initialisation compteur de points int nbdepoints = 0; int abadie = EOF; for(int impair=1; (abadie=fgetc(fichierjo))!= EOF; impair=1-impair) { if(impair) continue; nbdepoints += abadie; } return nbdepoints; } // Écrit l'en-tête wave du fichier cn.wav en fonction du fichier cn.jo static void enteteFichierWave(FILE* fichierwav, FILE* fichierjo) { int nbdepoints = nbdepointsFichierJo(fichierjo); /*ici*je*commence*le*traitement*comme*jécris*chaque*base*de*temps*sur*deux*octets*je*multiplis*par*2*/ int durerentete = nbdepoints * 2; int longueurentete = durerentete + 44 - 8; /****declaration**type**audio*4octets**/ unsigned char riff[4] = { 0x52, 0x49, 0x46, 0x46 }; fwrite (riff, 1, sizeof (riff), fichierwav); /****longueurentete*du*fichier*audio*ici*21200**/ fwrite (&longueurentete, sizeof (longueurentete), 1, fichierwav); /****declaration**type**wave*4octets**/ unsigned char wave[4] = { 0x57, 0x41, 0x56, 0x45 }; fwrite (wave, 1, sizeof (wave), fichierwav); /****declaration**type**fmt suivit d'un espace qui s'écrit 0x20 soit 4octets**/ unsigned char fmt[4] = { 0x66, 0x6D, 0x74, 0x20 }; fwrite (fmt, 1, sizeof (fmt), fichierwav); /****declaration**de*la*maniere d'écrire*sous forme*d'un*entier long (unsigned int) soit 4octets**/ /**comme c'est du 16 octets en exadécimal cela donne 0x10****/ unsigned char poids[4] = { 0x10, 0x00, 0x00, 0x00 }; fwrite (poids, 1, sizeof (poids), fichierwav); /****codage pour indiquer le PCM c'est : 1 soit 2octets**/ unsigned char pourpcm[2] = { 0x01, 0x00 }; fwrite (pourpcm, 1, sizeof (pourpcm), fichierwav); /****nombre de piste sur 2octets*ici c'est du mono, donc 1*/ unsigned char piste[2] = { 0x01, 0x00 }; fwrite (piste, 1, sizeof (piste), fichierwav); /**nombre d'échantillons par seconde**sur 4 octets**/ unsigned char tempsunitaire[4] = { 0x44, 0xAC, 0x00, 0x00 }; fwrite (tempsunitaire, 1, sizeof (tempsunitaire), fichierwav); /**nombre d'octets par secondes**sur 4 octets***le*double*du*précédent*dans*ce*cas*/ unsigned char octetpars[4] = { 0x88, 0x58, 0x01, 0x00 }; fwrite (octetpars, 1, sizeof (octetpars), fichierwav); /*taille en octet d'1 échantillon***sur*2octets**/ unsigned char tailleechant[2] = { 0x02, 0x00 }; fwrite (tailleechant, 1, sizeof (tailleechant), fichierwav); /*contient le nombre de bits par échantillon*2x8=16*soit*10*en*exa**sur*2octets**/ unsigned char bitparechan[2] = { 0x10, 0x00 }; fwrite (bitparechan, 1, sizeof (bitparechan), fichierwav); /**On ecrit ici data pour dire que le fichier commence**sur 4cotets**/ unsigned char mono[4] = { 0x64, 0x61, 0x74, 0x61 }; fwrite (mono, 1, sizeof (mono), fichierwav); fwrite (&durerentete, sizeof (durerentete), 1, fichierwav); } // Conversion d'un fichier piste.jo en un fichier piste.wav void conversionJoWav(int piste) { snprintf(awav, 32, "%d.wav", piste); snprintf(ajo, 32, "%d.jo", piste); // Nom du fichier wave cn.wav char nomfichierwav[32]; snprintf(nomfichierwav, 32, "%d.wav", piste); char numeropourwav[1]; snprintf(numeropourwav, 1, "%d", piste); // Ouverture du fichier wave FILE *fichierwav; if (!(fichierwav=fopen(nomfichierwav,"wb"))) { printf ("Erreur: impossible d'ouvrir le fichier .wav suivant: %s\n", nomfichierwav); exit(-1); } // Nom du fichier jo cn.jo char nomfichierjo[32]; snprintf(nomfichierjo, 32, "%d.jo", piste); // Ouverture du fichier jo FILE *fichierjo; if(!(fichierjo=fopen(nomfichierjo,"rb"))) { printf ("Erreur: impossible d'ouvrir le fichier .jo suivant: %s\n", nomfichierjo); exit(-1); } // Écritude de l'en-tête du fichier .wav enteteFichierWave(fichierwav,fichierjo); rewind(fichierjo); fclose(fichierjo); fclose(fichierwav); // Table magique de conversion /*j ouvre mon fichier de donner*/ FILE *jojo = NULL; int abadie = 0; int placement[NumDeTab] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128 }; int tab1jo17[combientab1] = { 97932 }; int tab2jo17[combientab2] = { 85621, 97932 }; int tab3jo17[combientab3] = { 72553, 92467, 97932 }; int tab4jo17[combientab4] = { 62080, 85621, 94547, 97932 }; int tab5jo17[combientab5] = { 53965, 78807, 90244, 95509, 97932 }; int tab6jo17[combientab6] = { 47611, 72553, 85621, 92467, 96053, 97932 }; int tab7jo17[combientab7] = { 42542, 66986, 81030, 89100, 93737, 96402, 97932 }; int tab8jo17[combientab8] = { 38421, 62080, 76649, 85621, 91145, 94547, 96642, 97932 }; int tab9jo17[combientab9] = { 35013, 57766, 72553, 82163, 88408, 92467, 95104, 96818, 97932 }; int tab10jo17[combientab10] = { 32151, 53965, 68765, 78807, 85621, 90244, 93381, 95509, 96953, 97932 }; int tab11jo17[combientab11] = { 29715, 50601, 65280, 75597, 82849, 87945, 91527, 94045, 95815, 97058, 97932 }; int tab12jo17[combientab12] = { 27619, 47611, 62080, 72553, 80134, 85621, 89592, 92467, 94547, 96053, 97143, 97932 }; int tab13jo17[combientab13] = { 25797, 44939, 59144, 69683, 77504, 83307, 87614, 90809, 93180, 94939, 96245, 97214, 97932 }; int tab14jo17[combientab14] = { 24199, 42542, 56446, 66986, 74975, 81030, 85621, 89100, 91738, 93737, 95253, 96402, 97272, 97932 }; int tab15jo17[combientab15] = { 22786, 40380, 53965, 64454, 72553, 78807, 83636, 87365, 90244, 92467, 94183, 95509, 96532, 97322, 97932 }; int tab16jo17[combientab16] = { 21528, 38421, 51677, 62080, 70243, 76649, 81676, 85621, 88716, 91145, 93052, 94547, 95721, 96642, 97365, 97932 }; int tab17jo17[combientab17] = { 20401, 36639, 49565, 59854, 68044, 74563, 79753, 83883, 87171, 89788, 91872, 93530, 94850, 95900, 96737, 97403, 97932 }; int tab18jo17[combientab18] = { 19385, 35013, 47611, 57766, 65953, 72553, 77874, 82163, 85621, 88408, 90655, 92467, 93927, 95104, 96053, 96818, 97435, 97932 }; int tab19jo17[combientab19] = { 18466, 33522, 45797, 55806, 63967, 70621, 76046, 80469, 84076, 87016, 89414, 91369, 92962, 94262, 95322, 96185, 96890, 97464, 97932 }; int tab20jo17[combientab20] = { 17629, 32151, 44112, 53965, 62080, 68765, 74272, 78807, 82543, 85621, 88156, 90244, 91964, 93381, 94547, 95509, 96300, 96953, 97490, 97932 }; int tab21jo17[combientab21] = { 16865, 30886, 42542, 52232, 60288, 66986, 72553, 77182, 81030, 84230, 86889, 89100, 90939, 92467, 93737, 94794, 95672, 96402, 97008, 97513, 97932 }; int tab22jo17[combientab22] = { 16164, 29715, 41076, 50601, 58586, 65280, 70892, 75597, 79542, 82849, 85621, 87945, 89894, 91527, 92897, 94045, 95008, 95815, 96491, 97058, 97534, 97932 }; int tab23jo17[combientab23] = { 15519, 28630, 39705, 49063, 56968, 63646, 69288, 74054, 78080, 81482, 84356, 86784, 88835, 90567, 92031, 93268, 94313, 95195, 95941, 96571, 97103, 97553, 97932 }; int tab24jo17[combientab24] = { 14923, 27619, 38421, 47611, 55429, 62080, 67739, 72553, 76649, 80134, 83099, 85621, 87767, 89592, 91145, 92467, 93591, 94547, 95361, 96053, 96642, 97143, 97570, 97932 }; int tab25jo17[combientab25] = { 14371, 26678, 37215, 46238, 53965, 60580, 66246, 71097, 75250, 78807, 81853, 84461, 86694, 88606, 90244, 91646, 92847, 93875, 94755, 95509, 96154, 96707, 97180, 97585, 97932 }; int tab26jo17[combientab26] = { 13859, 25797, 36081, 44939, 52570, 59144, 64806, 69683, 73885, 77504, 80622, 83307, 85621, 87614, 89330, 90809, 92083, 93180, 94125, 94939, 95641, 96245, 96765, 97214, 97600, 97932 }; int tab27jo17[combientab27] = { 13382, 24973, 35013, 43709, 51242, 57766, 63418, 68313, 72553, 76226, 79408, 82163, 84550, 86618, 88408, 89959, 91303, 92467, 93475, 94348, 95104, 95760, 96327, 96818, 97244, 97613, 97932 }; int tab28jo17[combientab28] = { 12936, 24199, 34005, 42542, 49975, 56446, 62080, 66986, 71256, 74975, 78212, 81030, 83484, 85621, 87481, 89100, 90510, 91738, 92807, 93737, 94547, 95253, 95867, 96402, 96867, 97272, 97625, 97932 }; int tab29jo17[combientab29] = { 12519, 23471, 33052, 41433, 48765, 55180, 60791, 65700, 69994, 73750, 77037, 79911, 82426, 84626, 86551, 88235, 89708, 90996, 92123, 93109, 93972, 94727, 95387, 95964, 96470, 96912, 97298, 97637, 97932 }; int tab30jo17[combientab30] = { 12128, 22786, 32151, 40380, 47611, 53965, 59548, 64454, 68765, 72553, 75882, 78807, 81378, 83636, 85621, 87365, 88897, 90244, 91427, 92467, 93381, 94183, 94889, 95509, 96053, 96532, 96953, 97322, 97647, 97932 }; int tab31jo17[combientab31] = { 11761, 22139, 31296, 39377, 46507, 52798, 58349, 63248, 67570, 71385, 74750, 77720, 80340, 82652, 84693, 86493, 88081, 89483, 90720, 91812, 92775, 93624, 94374, 95036, 95620, 96135, 96589, 96991, 97345, 97657, 97932 }; int tab32jo17[combientab32] = { 11415, 21528, 30486, 38421, 45450, 51677, 57194, 62080, 66409, 70243, 73640, 76649, 79315, 81676, 83768, 85621, 87262, 88716, 90004, 91145, 92156, 93052, 93845, 94547, 95170, 95721, 96210, 96642, 97026, 97365, 97666, 97932 }; int tab33jo17[combientab33] = { 11089, 20949, 29715, 37510, 44439, 50601, 56079, 60949, 65280, 69130, 72553, 75597, 78303, 80709, 82849, 84751, 86442, 87945, 89282, 90471, 91527, 92467, 93302, 94045, 94705, 95293, 95815, 96279, 96691, 97058, 97384, 97675, 97932 }; int tab34jo17[combientab34] = { 10782, 20401, 28983, 36639, 43471, 49565, 55003, 59854, 64183, 68044, 71490, 74563, 77306, 79753, 81936, 83883, 85621, 87171, 88554, 89788, 90889, 91872, 92748, 93530, 94227, 94850, 95405, 95900, 96342, 96737, 97089, 97403, 97683, 97932 }; int tab35jo17[combientab35] = { 10490, 19880, 28285, 35808, 42542, 48569, 53965, 58794, 63116, 66986, 70449, 73549, 76324, 78807, 81030, 83020, 84802, 86396, 87823, 89100, 90244, 91267, 92183, 93003, 93737, 94394, 94982, 95509, 95980, 96402, 96779, 97117, 97419, 97690, 97932 }; int tab36jo17[combientab36] = { 10214, 19385, 27619, 35013, 41651, 47611, 52962, 57766, 62080, 65953, 69431, 72553, 75357, 77874, 80134, 82163, 83985, 85621, 87090, 88408, 89592, 90655, 91610, 92467, 93236, 93927, 94547, 95104, 95604, 96053, 96457, 96818, 97143, 97435, 97697, 97932 }; int tab37jo17[combientab37] = { 9952, 18914, 26984, 34251, 40795, 46687, 51993, 56771, 61073, 64947, 68436, 71577, 74406, 76953, 79247, 81312, 83172, 84847, 86355, 87713, 88936, 90037, 91029, 91922, 92726, 93450, 94101, 94689, 95217, 95693, 96122, 96508, 96855, 97168, 97450, 97704, 97932 }; int tab38jo17[combientab38] = { 9704, 18466, 26378, 33522, 39972, 45797, 51057, 55806, 60095, 63967, 67463, 70621, 73472, 76046, 78370, 80469, 82364, 84076, 85621, 87016, 88276, 89414, 90441, 91369, 92206, 92962, 93645, 94262, 94819, 95322, 95776, 96185, 96556, 96890, 97192, 97464, 97710, 97932 }; int tab39jo17[combientab39] = { 9467, 18038, 25797, 32822, 39182, 44939, 50152, 54871, 59144, 63011, 66513, 69683, 72553, 75152, 77504, 79634, 81562, 83307, 84888, 86318, 87614, 88786, 89848, 90809, 91679, 92467, 93180, 93826, 94410, 94939, 95418, 95852, 96245, 96600, 96922, 97214, 97477, 97716, 97932 }; int tab40jo17[combientab40] = { 9242, 17629, 25242, 32151, 38421, 44112, 49277, 53965, 58219, 62080, 65585, 68765, 71652, 74272, 76649, 78807, 80766, 82543, 84157, 85621, 86950, 88156, 89250, 90244, 91145, 91964, 92706, 93381, 93992, 94547, 95051, 95509, 95924, 96300, 96642, 96953, 97234, 97490, 97722, 97932 }; int tab41jo17[combientab41] = { 9027, 17239, 24709, 31506, 37688, 43313, 48430, 53085, 57320, 61173, 64678, 67866, 70767, 73405, 75806, 77990, 79977, 81784, 83429, 84924, 86285, 87523, 88649, 89674, 90606, 91454, 92226, 92927, 93566, 94147, 94675, 95156, 95593, 95991, 96353, 96682, 96981, 97254, 97502, 97727, 97932 }; int tab42jo17[combientab42] = { 8822, 16865, 24199, 30886, 36983, 42542, 47611, 52232, 56446, 60288, 63791, 66986, 69898, 72553, 74975, 77182, 79195, 81030, 82704, 84230, 85621, 86889, 88046, 89100, 90062, 90939, 91738, 92467, 93131, 93737, 94290, 94794, 95253, 95672, 96053, 96402, 96719, 97008, 97272, 97513, 97732, 97932 }; int tab43jo17[combientab43] = { 8626, 16507, 23709, 30289, 36302, 41797, 46817, 51404, 55596, 59426, 62926, 66124, 69046, 71716, 74155, 76385, 78422, 80283, 81984, 83538, 84958, 86255, 87441, 88524, 89514, 90418, 91245, 92000, 92690, 93321, 93897, 94423, 94904, 95344, 95745, 96112, 96448, 96754, 97034, 97290, 97524, 97737, 97932 }; int tab44jo17[combientab44] = { 8438, 16164, 23238, 29715, 35646, 41076, 46048, 50601, 54769, 58586, 62080, 65280, 68210, 70892, 73348, 75597, 77656, 79542, 81268, 82849, 84296, 85621, 86834, 87945, 88962, 89894, 90746, 91527, 92242, 92897, 93496, 94045, 94547, 95008, 95429, 95815, 96168, 96491, 96787, 97058, 97306, 97534, 97742, 97932 }; int tab45jo17[combientab45] = { 8258, 15835, 22786, 29162, 35013, 40380, 45303, 49820, 53965, 57766, 61254, 64454, 67390, 70083, 72553, 74820, 76900, 78807, 80558, 82163, 83636, 84988, 86227, 87365, 88408, 89366, 90244, 91050, 91789, 92467, 93089, 93660, 94183, 94664, 95104, 95509, 95880, 96220, 96532, 96818, 97081, 97322, 97543, 97746, 97932 }; int tab46jo17[combientab46] = { 8086, 15519, 22350, 28630, 34401, 39705, 44581, 49063, 53182, 56968, 60447, 63646, 66585, 69288, 71771, 74054, 76152, 78080, 79853, 81482, 82979, 84356, 85621, 86784, 87852, 88835, 89738, 90567, 91330, 92031, 92676, 93268, 93812, 94313, 94773, 95195, 95584, 95941, 96269, 96571, 96848, 97103, 97337, 97553, 97751, 97932 }; int tab47jo17[combientab47] = { 7921, 15215, 21931, 28116, 33810, 39053, 43881, 48326, 52419, 56189, 59659, 62855, 65797, 68506, 71001, 73298, 75413, 77361, 79154, 80806, 82326, 83726, 85015, 86202, 87295, 88302, 89228, 90081, 90867, 91591, 92257, 92870, 93435, 93955, 94434, 94875, 95281, 95655, 95999, 96316, 96608, 96876, 97124, 97352, 97561, 97755, 97932 }; int tab48jo17[combientab48] = { 7763, 14923, 21528, 27619, 33238, 38421, 43201, 47611, 51677, 55429, 58889, 62080, 65024, 67739, 70243, 72553, 74684, 76649, 78462, 80134, 81676, 83099, 84411, 85621, 86737, 87767, 88716, 89592, 90400, 91145, 91833, 92467, 93052, 93591, 94089, 94547, 94971, 95361, 95721, 96053, 96360, 96642, 96903, 97143, 97365, 97570, 97758, 97932 }; int tab49jo17[combientab49] = { 7611, 14642, 21138, 27140, 32686, 37809, 42542, 46915, 50955, 54688, 58136, 61322, 64266, 66986, 69498, 71820, 73964, 75946, 77776, 79468, 81030, 82474, 83808, 85040, 86179, 87231, 88203, 89100, 89930, 90696, 91404, 92059, 92663, 93221, 93737, 94214, 94654, 95061, 95437, 95784, 96105, 96402, 96675, 96928, 97162, 97378, 97578, 97762, 97932 }; int tab50jo17[combientab50] = { 7464, 14371, 20763, 26678, 32151, 37215, 41901, 46238, 50251, 53965, 57401, 60580, 63523, 66246, 68765, 71097, 73254, 75250, 77098, 78807, 80389, 81853, 83208, 84461, 85621, 86694, 87687, 88606, 89457, 90244, 90972, 91646, 92270, 92847, 93381, 93875, 94332, 94755, 95146, 95509, 95844, 96154, 96441, 96707, 96953, 97180, 97391, 97585, 97766, 97932 }; int tab51jo17[combientab51] = { 7323, 14111, 20401, 26230, 31633, 36639, 41280, 45580, 49565, 53259, 56682, 59854, 62794, 65519, 68044, 70385, 72553, 74563, 76426, 78153, 79753, 81235, 82610, 83883, 85064, 86157, 87171, 88111, 88981, 89788, 90536, 91229, 91872, 92467, 93019, 93530, 94004, 94443, 94850, 95227, 95577, 95900, 96201, 96479, 96737, 96976, 97197, 97403, 97593, 97769, 97932 }; int tab52jo17[combientab52] = { 7188, 13859, 20051, 25797, 31131, 36081, 40675, 44939, 48897, 52570, 55979, 59144, 62080, 64806, 67335, 69683, 71862, 73885, 75762, 77504, 79121, 80622, 82015, 83307, 84507, 85621, 86654, 87614, 88504, 89330, 90097, 90809, 91470, 92083, 92652, 93180, 93670, 94125, 94547, 94939, 95303, 95641, 95954, 96245, 96515, 96765, 96998, 97214, 97414, 97600, 97772, 97932 }; int tab53jo17[combientab53] = { 7057, 13616, 19712, 25378, 30644, 35539, 40088, 44316, 48246, 51898, 55293, 58448, 61380, 64105, 66639, 68993, 71181, 73215, 75105, 76862, 78495, 80012, 81423, 82734, 83952, 85085, 86138, 87116, 88025, 88870, 89656, 90386, 91064, 91695, 92281, 92826, 93332, 93802, 94240, 94646, 95024, 95375, 95702, 96005, 96287, 96549, 96793, 97019, 97229, 97425, 97607, 97775, 97932 }; int tab54jo17[combientab54] = { 6931, 13382, 19385, 24973, 30173, 35013, 39517, 43709, 47611, 51242, 54621, 57766, 60694, 63418, 65953, 68313, 70509, 72553, 74456, 76226, 77874, 79408, 80835, 82163, 83399, 84550, 85621, 86618, 87545, 88408, 89212, 89959, 90655, 91303, 91906, 92467, 92989, 93475, 93927, 94348, 94740, 95104, 95444, 95760, 96053, 96327, 96582, 96818, 97039, 97244, 97435, 97613, 97778, 97932 }; int tab55jo17[combientab55] = { 6809, 13155, 19069, 24580, 29715, 34501, 38961, 43118, 46991, 50601, 53965, 57099, 60021, 62743, 65280, 67644, 69847, 71901, 73814, 75597, 77259, 78807, 80250, 81595, 82849, 84016, 85105, 86119, 87064, 87945, 88766, 89531, 90244, 90908, 91527, 92104, 92642, 93143, 93610, 94045, 94450, 94828, 95181, 95509, 95815, 96100, 96365, 96613, 96843, 97058, 97259, 97445, 97619, 97781, 97932 }; int tab56jo17[combientab56] = { 6692, 12936, 18762, 24199, 29271, 34005, 38421, 42542, 46387, 49975, 53322, 56446, 59361, 62080, 64618, 66986, 69195, 71256, 73180, 74975, 76649, 78212, 79670, 81030, 82300, 83484, 84590, 85621, 86583, 87481, 88319, 89100, 89830, 90510, 91145, 91738, 92291, 92807, 93288, 93737, 94156, 94547, 94912, 95253, 95570, 95867, 96144, 96402, 96642, 96867, 97077, 97272, 97455, 97625, 97784, 97932 }; int tab57jo17[combientab57] = { 6579, 12724, 18466, 23829, 28840, 33522, 37895, 41981, 45797, 49363, 52694, 55806, 58714, 61430, 63967, 66337, 68552, 70621, 72553, 74359, 76046, 77622, 79094, 80469, 81754, 82954, 84076, 85123, 86102, 87016, 87870, 88668, 89414, 90110, 90761, 91369, 91936, 92467, 92962, 93425, 93858, 94262, 94639, 94992, 95322, 95629, 95917, 96185, 96436, 96671, 96890, 97094, 97286, 97464, 97631, 97787, 97932 }; int tab58jo17[combientab58] = { 6469, 12519, 18178, 23471, 28422, 33052, 37383, 41433, 45222, 48765, 52080, 55180, 58079, 60791, 63327, 65700, 67918, 69994, 71935, 73750, 75448, 77037, 78522, 79911, 81211, 82426, 83563, 84626, 85621, 86551, 87421, 88235, 88996, 89708, 90373, 90996, 91579, 92123, 92633, 93109, 93555, 93972, 94362, 94727, 95068, 95387, 95685, 95964, 96226, 96470, 96698, 96912, 97111, 97298, 97473, 97637, 97789, 97932 }; int tab59jo17[combientab59] = { 6363, 12321, 17900, 23123, 28015, 32595, 36884, 40900, 44660, 48181, 51479, 54566, 57457, 60164, 62698, 65072, 67294, 69375, 71324, 73148, 74857, 76457, 77955, 79357, 80671, 81901, 83052, 84131, 85140, 86086, 86971, 87800, 88576, 89303, 89984, 90621, 91218, 91777, 92300, 92790, 93249, 93678, 94080, 94457, 94810, 95140, 95449, 95739, 96010, 96264, 96502, 96724, 96933, 97128, 97311, 97482, 97642, 97792, 97932 }; int tab60jo17[combientab60] = { 6260, 12128, 17629, 22786, 27619, 32151, 36398, 40380, 44112, 47611, 50890, 53965, 56846, 59548, 62080, 64454, 66679, 68765, 70721, 72553, 74272, 75882, 77392, 78807, 80134, 81378, 82543, 83636, 84661, 85621, 86521, 87365, 88156, 88897, 89592, 90244, 90855, 91427, 91964, 92467, 92938, 93381, 93795, 94183, 94547, 94889, 95209, 95509, 95790, 96053, 96300, 96532, 96749, 96953, 97143, 97322, 97490, 97647, 97794, 97932 }; int tab61jo17[combientab61] = { 6161, 11942, 17367, 22458, 27235, 31718, 35924, 39872, 43576, 47052, 50314, 53375, 56248, 58943, 61473, 63846, 66073, 68164, 70125, 71965, 73693, 75313, 76834, 78261, 79601, 80857, 82037, 83143, 84182, 85156, 86071, 86929, 87734, 88490, 89199, 89864, 90489, 91075, 91625, 92141, 92625, 93079, 93506, 93906, 94281, 94633, 94964, 95274, 95565, 95839, 96095, 96336, 96561, 96773, 96972, 97159, 97334, 97498, 97652, 97797, 97932 }; int tab62jo17[combientab62] = { 6064, 11761, 17112, 22139, 26861, 31296, 35463, 39377, 43053, 46507, 49751, 52798, 55660, 58349, 60875, 63248, 65477, 67570, 69537, 71385, 73120, 74750, 76281, 77720, 79071, 80340, 81532, 82652, 83704, 84693, 85621, 86493, 87312, 88081, 88804, 89483, 90121, 90720, 91283, 91812, 92308, 92775, 93213, 93624, 94011, 94374, 94715, 95036, 95337, 95620, 95885, 96135, 96369, 96589, 96796, 96991, 97173, 97345, 97506, 97657, 97799, 97932 }; int tab63jo17[combientab63] = { 5971, 11586, 16865, 21829, 26497, 30886, 35013, 38893, 42542, 45973, 49199, 52232, 55084, 57766, 60288, 62659, 64889, 66986, 68957, 70811, 72553, 74192, 75733, 77182, 78545, 79826, 81030, 82163, 83228, 84230, 85171, 86057, 86889, 87672, 88408, 89100, 89751, 90363, 90939, 91480, 91988, 92467, 92917, 93340, 93737, 94111, 94463, 94794, 95104, 95397, 95672, 95930, 96173, 96402, 96616, 96818, 97008, 97187, 97355, 97513, 97661, 97801, 97932 }; int tab64jo17[combientab64] = { 5881, 11415, 16625, 21528, 26142, 30486, 34573, 38421, 42042, 45450, 48658, 51677, 54519, 57194, 59711, 62080, 64310, 66409, 68384, 70243, 71993, 73640, 75190, 76649, 78023, 79315, 80531, 81676, 82754, 83768, 84722, 85621, 86466, 87262, 88011, 88716, 89380, 90004, 90592, 91145, 91666, 92156, 92618, 93052, 93460, 93845, 94207, 94547, 94868, 95170, 95454, 95721, 95973, 96210, 96433, 96642, 96840, 97026, 97201, 97365, 97520, 97666, 97803, 97932 }; int tab65jo17[combientab65] = { 5793, 11250, 16391, 21234, 25797, 30096, 34145, 37960, 41554, 44939, 48129, 51134, 53965, 56631, 59144, 61510, 63740, 65840, 67819, 69683, 71440, 73094, 74653, 76121, 77504, 78807, 80035, 81192, 82281, 83307, 84274, 85185, 86044, 86852, 87614, 88331, 89007, 89644, 90244, 90809, 91341, 91843, 92316, 92761, 93180, 93575, 93947, 94298, 94628, 94939, 95233, 95509, 95769, 96014, 96245, 96462, 96667, 96860, 97042, 97214, 97375, 97527, 97670, 97805, 97932 }; int tab66jo17[combientab66] = { 5708, 11089, 16164, 20949, 25461, 29715, 33727, 37510, 41076, 44439, 47611, 50601, 53420, 56079, 58586, 60949, 63178, 65280, 67262, 69130, 70892, 72553, 74120, 75597, 76990, 78303, 79542, 80709, 81810, 82849, 83827, 84751, 85621, 86442, 87215, 87945, 88633, 89282, 89894, 90471, 91014, 91527, 92011, 92467, 92897, 93302, 93685, 94045, 94385, 94705, 95008, 95293, 95561, 95815, 96053, 96279, 96491, 96691, 96880, 97058, 97226, 97384, 97534, 97675, 97807, 97932 }; int tab67jo17[combientab67] = { 5625, 10933, 15943, 20671, 25133, 29344, 33319, 37069, 40609, 43950, 47103, 50078, 52886, 55536, 58037, 60397, 62625, 64727, 66711, 68584, 70351, 72019, 73593, 75078, 76480, 77803, 79051, 80230, 81342, 82391, 83382, 84316, 85199, 86031, 86817, 87558, 88258, 88919, 89542, 90130, 90685, 91209, 91704, 92170, 92611, 93026, 93419, 93789, 94138, 94468, 94779, 95073, 95350, 95612, 95858, 96091, 96311, 96519, 96714, 96899, 97074, 97238, 97394, 97540, 97679, 97809, 97932 }; int tab68jo17[combientab68] = { 5544, 10782, 15728, 20401, 24814, 28983, 32920, 36639, 40152, 43471, 46605, 49565, 52362, 55003, 57498, 59854, 62080, 64183, 66169, 68044, 69816, 71490, 73070, 74563, 75974, 77306, 78564, 79753, 80875, 81936, 82937, 83883, 84777, 85621, 86418, 87171, 87882, 88554, 89189, 89788, 90355, 90889, 91394, 91872, 92322, 92748, 93150, 93530, 93889, 94227, 94547, 94850, 95135, 95405, 95660, 95900, 96128, 96342, 96545, 96737, 96918, 97089, 97250, 97403, 97547, 97683, 97811, 97932 }; int tab69jo17[combientab69] = { 5466, 10634, 15519, 20137, 24503, 28630, 32531, 36219, 39705, 43001, 46117, 49063, 51847, 54479, 56968, 59320, 61544, 63646, 65633, 67512, 69288, 70966, 72553, 74054, 75472, 76813, 78080, 79279, 80411, 81482, 82494, 83451, 84356, 85211, 86019, 86784, 87506, 88189, 88835, 89445, 90022, 90567, 91083, 91570, 92031, 92467, 92879, 93268, 93636, 93984, 94313, 94624, 94917, 95195, 95458, 95706, 95941, 96163, 96373, 96571, 96758, 96936, 97103, 97261, 97411, 97553, 97686, 97813, 97932 }; int tab70jo17[combientab70] = { 5390, 10490, 15315, 19880, 24199, 28285, 32151, 35808, 39268, 42542, 45639, 48569, 51342, 53965, 56446, 58794, 61015, 63116, 65105, 66986, 68765, 70449, 72042, 73549, 74975, 76324, 77600, 78807, 79950, 81030, 82053, 83020, 83936, 84802, 85621, 86396, 87129, 87823, 88479, 89100, 89688, 90244, 90770, 91267, 91738, 92183, 92605, 93003, 93381, 93737, 94075, 94394, 94696, 94982, 95253, 95509, 95751, 95980, 96197, 96402, 96596, 96779, 96953, 97117, 97272, 97419, 97558, 97690, 97815, 97932 }; int tab71jo17[combientab71] = { 5317, 10350, 15117, 19630, 23902, 27948, 31779, 35406, 38840, 42092, 45170, 48085, 50845, 53459, 55933, 58276, 60494, 62595, 64583, 66466, 68249, 69937, 71535, 73049, 74482, 75838, 77123, 78339, 79491, 80581, 81614, 82591, 83517, 84393, 85223, 86008, 86752, 87457, 88123, 88755, 89353, 89919, 90455, 90962, 91443, 91898, 92328, 92736, 93122, 93488, 93834, 94162, 94472, 94766, 95045, 95308, 95558, 95794, 96017, 96229, 96430, 96619, 96799, 96969, 97130, 97283, 97427, 97564, 97694, 97816, 97932 }; int tab72jo17[combientab72] = { 5245, 10214, 14923, 19385, 23613, 27619, 31416, 35013, 38421, 41651, 44711, 47611, 50358, 52962, 55429, 57766, 59981, 62080, 64069, 65953, 67739, 69431, 71034, 72553, 73993, 75357, 76649, 77874, 79034, 80134, 81176, 82163, 83099, 83985, 84825, 85621, 86375, 87090, 87767, 88408, 89016, 89592, 90138, 90655, 91145, 91610, 92050, 92467, 92862, 93236, 93591, 93927, 94246, 94547, 94833, 95104, 95361, 95604, 95835, 96053, 96260, 96457, 96642, 96818, 96985, 97143, 97293, 97435, 97570, 97697, 97818, 97932 }; int tab73jo17[combientab73] = { 5175, 10082, 14735, 19147, 23331, 27298, 31060, 34628, 38011, 41218, 44260, 47145, 49880, 52473, 54933, 57265, 59476, 61573, 63562, 65447, 67235, 68931, 70538, 72063, 73509, 74880, 76179, 77412, 78581, 79689, 80740, 81737, 82682, 83578, 84428, 85234, 85998, 86722, 87410, 88061, 88679, 89265, 89820, 90347, 90846, 91320, 91769, 92195, 92599, 92982, 93345, 93690, 94016, 94326, 94619, 94898, 95162, 95412, 95650, 95875, 96088, 96291, 96483, 96665, 96837, 97001, 97156, 97303, 97443, 97575, 97701, 97820, 97932 }; int tab74jo17[combientab74] = { 5107, 9952, 14551, 18914, 23055, 26984, 30713, 34251, 37609, 40795, 43818, 46687, 49410, 51993, 54445, 56771, 58978, 61073, 63061, 64947, 66737, 68436, 70048, 71577, 73029, 74406, 75713, 76953, 78130, 79247, 80307, 81312, 82267, 83172, 84032, 84847, 85621, 86355, 87052, 87713, 88341, 88936, 89501, 90037, 90546, 91029, 91487, 91922, 92334, 92726, 93097, 93450, 93784, 94101, 94403, 94689, 94960, 95217, 95461, 95693, 95913, 96122, 96320, 96508, 96686, 96855, 97016, 97168, 97313, 97450, 97580, 97704, 97821, 97932 }; int tab75jo17[combientab75] = { 5040, 9826, 14371, 18687, 22786, 26678, 30373, 33883, 37215, 40380, 43385, 46238, 48948, 51521, 53965, 56285, 58488, 60580, 62567, 64454, 66246, 67947, 69563, 71097, 72553, 73937, 75250, 76498, 77682, 78807, 79876, 80890, 81853, 82768, 83636, 84461, 85244, 85988, 86694, 87365, 88002, 88606, 89181, 89726, 90244, 90736, 91203, 91646, 92067, 92467, 92847, 93207, 93549, 93875, 94183, 94477, 94755, 95019, 95270, 95509, 95735, 95950, 96154, 96348, 96532, 96707, 96873, 97030, 97180, 97322, 97457, 97585, 97707, 97823, 97932 }; int tab76jo17[combientab76] = { 4976, 9704, 14196, 18466, 22523, 26378, 30041, 33522, 36829, 39972, 42959, 45797, 48494, 51057, 53492, 55806, 58005, 60095, 62080, 63967, 65760, 67463, 69082, 70621, 72083, 73472, 74792, 76046, 77238, 78370, 79446, 80469, 81441, 82364, 83242, 84076, 84868, 85621, 86336, 87016, 87662, 88276, 88859, 89414, 89940, 90441, 90917, 91369, 91798, 92206, 92594, 92962, 93313, 93645, 93962, 94262, 94547, 94819, 95077, 95322, 95554, 95776, 95986, 96185, 96375, 96556, 96727, 96890, 97045, 97192, 97331, 97464, 97590, 97710, 97824, 97932 }; int tab77jo17[combientab77] = { 4913, 9584, 14026, 18249, 22265, 26084, 29715, 33168, 36451, 39573, 42542, 45365, 48049, 50601, 53028, 55335, 57529, 59616, 61600, 63486, 65280, 66986, 68607, 70150, 71616, 73010, 74336, 75597, 76796, 77936, 79020, 80050, 81030, 81962, 82849, 83691, 84492, 85254, 85979, 86667, 87322, 87945, 88537, 89100, 89636, 90145, 90629, 91090, 91527, 91944, 92339, 92716, 93073, 93414, 93737, 94045, 94338, 94616, 94880, 95132, 95371, 95598, 95815, 96020, 96216, 96402, 96578, 96746, 96906, 97058, 97203, 97340, 97471, 97595, 97713, 97826, 97932 }; int tab78jo17[combientab78] = { 4851, 9467, 13859, 18038, 22014, 25797, 29397, 32822, 36081, 39182, 42132, 44939, 47611, 50152, 52570, 54871, 57060, 59144, 61126, 63011, 64806, 66513, 68138, 69683, 71154, 72553, 73885, 75152, 76357, 77504, 78596, 79634, 80622, 81562, 82456, 83307, 84117, 84888, 85621, 86318, 86982, 87614, 88215, 88786, 89330, 89848, 90340, 90809, 91255, 91679, 92083, 92467, 92832, 93180, 93511, 93826, 94125, 94410, 94681, 94939, 95185, 95418, 95641, 95852, 96053, 96245, 96427, 96600, 96765, 96922, 97072, 97214, 97349, 97477, 97600, 97716, 97827, 97932 }; int tab79jo17[combientab79] = { 4791, 9353, 13696, 17831, 21768, 25516, 29085, 32483, 35718, 38798, 41730, 44522, 47180, 49711, 52120, 54414, 56598, 58678, 60658, 62543, 64337, 66046, 67673, 69222, 70697, 72101, 73437, 74710, 75922, 77075, 78174, 79219, 80215, 81163, 82066, 82925, 83743, 84522, 85264, 85970, 86642, 87282, 87891, 88471, 89024, 89550, 90050, 90527, 90981, 91413, 91824, 92216, 92589, 92944, 93282, 93604, 93911, 94202, 94480, 94745, 94996, 95236, 95464, 95682, 95889, 96086, 96273, 96452, 96622, 96784, 96938, 97084, 97224, 97357, 97484, 97604, 97719, 97828, 97932 }; int tab80jo17[combientab80] = { 4733, 9242, 13537, 17629, 21528, 25242, 28780, 32151, 35362, 38421, 41335, 44112, 46757, 49277, 51677, 53965, 56143, 58219, 60196, 62080, 63875, 65585, 67213, 68765, 70243, 71652, 72993, 74272, 75489, 76649, 77754, 78807, 79810, 80766, 81676, 82543, 83370, 84157, 84907, 85621, 86301, 86950, 87567, 88156, 88716, 89250, 89759, 90244, 90706, 91145, 91565, 91964, 92344, 92706, 93052, 93381, 93694, 93992, 94277, 94547, 94806, 95051, 95286, 95509, 95721, 95924, 96117, 96300, 96476, 96642, 96801, 96953, 97097, 97234, 97365, 97490, 97609, 97722, 97830, 97932 }; int tab81jo17[combientab81] = { 4676, 9133, 13382, 17432, 21292, 24973, 28481, 31825, 35013, 38051, 40948, 43709, 46341, 48850, 51242, 53521, 55695, 57766, 59741, 61624, 63418, 65128, 66759, 68313, 69795, 71207, 72553, 73837, 75060, 76226, 77338, 78397, 79408, 80370, 81288, 82163, 82997, 83792, 84550, 85272, 85961, 86618, 87243, 87840, 88408, 88950, 89467, 89959, 90429, 90876, 91303, 91710, 92097, 92467, 92819, 93155, 93475, 93780, 94071, 94348, 94612, 94864, 95104, 95333, 95552, 95760, 95958, 96147, 96327, 96499, 96662, 96818, 96967, 97109, 97244, 97373, 97496, 97613, 97725, 97831, 97932 }; int tab82jo17[combientab82] = { 4620, 9027, 13230, 17239, 21062, 24709, 28188, 31506, 34670, 37688, 40567, 43313, 45932, 48430, 50813, 53085, 55253, 57320, 59292, 61173, 62967, 64678, 66309, 67866, 69351, 70767, 72117, 73405, 74634, 75806, 76924, 77990, 79007, 79977, 80902, 81784, 82626, 83429, 84194, 84924, 85621, 86285, 86919, 87523, 88100, 88649, 89174, 89674, 90151, 90606, 91040, 91454, 91849, 92226, 92585, 92927, 93254, 93566, 93863, 94147, 94417, 94675, 94921, 95156, 95379, 95593, 95797, 95991, 96176, 96353, 96521, 96682, 96835, 96981, 97121, 97254, 97381, 97502, 97617, 97727, 97832, 97932 }; int tab83jo17[combientab83] = { 4566, 8923, 13081, 17050, 20837, 24451, 27901, 31193, 34334, 37332, 40194, 42924, 45530, 48017, 50390, 52655, 54817, 56880, 58849, 60728, 62521, 64232, 65865, 67423, 68911, 70330, 71685, 72978, 74211, 75389, 76513, 77585, 78608, 79585, 80517, 81407, 82256, 83066, 83839, 84577, 85281, 85953, 86594, 87206, 87791, 88348, 88880, 89388, 89872, 90335, 90776, 91197, 91599, 91983, 92349, 92698, 93031, 93350, 93653, 93943, 94219, 94483, 94735, 94976, 95205, 95424, 95633, 95832, 96023, 96204, 96377, 96543, 96701, 96851, 96995, 97132, 97263, 97388, 97507, 97621, 97730, 97833, 97932 }; int tab84jo17[combientab84] = { 4513, 8822, 12936, 16865, 20617, 24199, 27619, 30886, 34005, 36983, 39826, 42542, 45135, 47611, 49975, 52232, 54388, 56446, 58411, 60288, 62080, 63791, 65425, 66986, 68475, 69898, 71256, 72553, 73792, 74975, 76104, 77182, 78212, 79195, 80134, 81030, 81887, 82704, 83484, 84230, 84941, 85621, 86270, 86889, 87481, 88046, 88585, 89100, 89592, 90062, 90510, 90939, 91348, 91738, 92111, 92467, 92807, 93131, 93441, 93737, 94020, 94290, 94547, 94794, 95028, 95253, 95467, 95672, 95867, 96053, 96232, 96402, 96564, 96719, 96867, 97008, 97143, 97272, 97395, 97513, 97625, 97732, 97835, 97932 }; int tab85jo17[combientab85] = { 4461, 8722, 12794, 16684, 20401, 23951, 27344, 30585, 33681, 36639, 39466, 42166, 44746, 47211, 49565, 51815, 53965, 56018, 57980, 59854, 61645, 63356, 64991, 66552, 68044, 69470, 70832, 72133, 73376, 74563, 75698, 76782, 77818, 78807, 79753, 80656, 81519, 82343, 83131, 83883, 84602, 85289, 85945, 86572, 87171, 87743, 88290, 88813, 89312, 89788, 90244, 90679, 91095, 91492, 91872, 92234, 92581, 92912, 93228, 93530, 93818, 94094, 94358, 94609, 94850, 95080, 95299, 95509, 95709, 95900, 96083, 96258, 96425, 96584, 96737, 96882, 97021, 97154, 97281, 97403, 97518, 97629, 97735, 97836, 97932 }; int tab86jo17[combientab86] = { 4410, 8626, 12655, 16507, 20189, 23709, 27073, 30289, 33364, 36302, 39111, 41797, 44363, 46817, 49162, 51404, 53547, 55596, 57554, 59426, 61215, 62926, 64561, 66124, 67618, 69046, 70411, 71716, 72963, 74155, 75295, 76385, 77426, 78422, 79373, 80283, 81152, 81984, 82778, 83538, 84264, 84958, 85621, 86255, 86861, 87441, 87994, 88524, 89030, 89514, 89976, 90418, 90841, 91245, 91631, 92000, 92353, 92690, 93012, 93321, 93615, 93897, 94166, 94423, 94669, 94904, 95129, 95344, 95549, 95745, 95933, 96112, 96284, 96448, 96604, 96754, 96897, 97034, 97165, 97290, 97409, 97524, 97633, 97737, 97837, 97932 }; int tab87jo17[combientab87] = { 4360, 8531, 12519, 16334, 19982, 23471, 26808, 30000, 33052, 35971, 38763, 41433, 43987, 46430, 48765, 51000, 53136, 55180, 57134, 59003, 60791, 62501, 64136, 65700, 67195, 68626, 69994, 71302, 72553, 73750, 74895, 75990, 77037, 78038, 78995, 79911, 80787, 81625, 82426, 83193, 83925, 84626, 85297, 85938, 86551, 87137, 87698, 88235, 88748, 89238, 89708, 90156, 90586, 90996, 91389, 91764, 92123, 92467, 92795, 93109, 93410, 93697, 93972, 94235, 94486, 94727, 94957, 95177, 95387, 95588, 95780, 95964, 96140, 96309, 96470, 96624, 96771, 96912, 97046, 97175, 97298, 97416, 97529, 97637, 97740, 97838, 97932 }; int tab88jo17[combientab88] = { 4312, 8438, 12386, 16164, 19779, 23238, 26548, 29715, 32746, 35646, 38421, 41076, 43617, 46048, 48375, 50601, 52731, 54769, 56719, 58586, 60371, 62080, 63715, 65280, 66777, 68210, 69580, 70892, 72147, 73348, 74497, 75597, 76649, 77656, 78620, 79542, 80424, 81268, 82076, 82849, 83588, 84296, 84973, 85621, 86241, 86834, 87402, 87945, 88465, 88962, 89438, 89894, 90329, 90746, 91145, 91527, 91893, 92242, 92577, 92897, 93203, 93496, 93777, 94045, 94302, 94547, 94783, 95008, 95223, 95429, 95626, 95815, 95995, 96168, 96333, 96491, 96642, 96787, 96926, 97058, 97185, 97306, 97423, 97534, 97640, 97742, 97839, 97932 }; int tab89jo17[combientab89] = { 4265, 8347, 12256, 15998, 19580, 23010, 26293, 29436, 32446, 35327, 38085, 40725, 43253, 45673, 47990, 50208, 52331, 54364, 56310, 58173, 59957, 61665, 63300, 64865, 66363, 67798, 69171, 70486, 71744, 72949, 74103, 75207, 76265, 77277, 78246, 79174, 80062, 80912, 81726, 82505, 83251, 83966, 84649, 85304, 85931, 86531, 87105, 87655, 88182, 88686, 89168, 89630, 90072, 90496, 90901, 91289, 91661, 92016, 92357, 92683, 92995, 93293, 93579, 93853, 94115, 94366, 94607, 94837, 95057, 95268, 95469, 95663, 95848, 96025, 96194, 96356, 96512, 96661, 96803, 96939, 97070, 97195, 97314, 97429, 97539, 97644, 97744, 97840, 97932 }; int tab90jo17[combientab90] = { 4218, 8258, 12128, 15835, 19385, 22786, 26043, 29162, 32151, 35013, 37754, 40380, 42894, 45303, 47611, 49820, 51937, 53965, 55906, 57766, 59548, 61254, 62889, 64454, 65953, 67390, 68765, 70083, 71345, 72553, 73711, 74820, 75882, 76900, 77874, 78807, 79701, 80558, 81378, 82163, 82916, 83636, 84326, 84988, 85621, 86227, 86808, 87365, 87898, 88408, 88897, 89366, 89814, 90244, 90655, 91050, 91427, 91789, 92135, 92467, 92785, 93089, 93381, 93660, 93927, 94183, 94429, 94664, 94889, 95104, 95311, 95509, 95698, 95880, 96053, 96220, 96379, 96532, 96678, 96818, 96953, 97081, 97204, 97322, 97435, 97543, 97647, 97746, 97841, 97932 }; int tab91jo17[combientab91] = { 4173, 8172, 12003, 15675, 19194, 22566, 25797, 28894, 31861, 34704, 37429, 40040, 42542, 44939, 47237, 49439, 51549, 53570, 55508, 57364, 59144, 60848, 62482, 64048, 65548, 66986, 68363, 69683, 70948, 72161, 73322, 74436, 75502, 76525, 77504, 78443, 79342, 80204, 81030, 81822, 82581, 83307, 84004, 84672, 85311, 85924, 86511, 87074, 87614, 88131, 88626, 89100, 89555, 89991, 90409, 90809, 91193, 91560, 91912, 92250, 92573, 92883, 93180, 93465, 93737, 93999, 94249, 94489, 94719, 94939, 95151, 95353, 95547, 95733, 95911, 96081, 96245, 96402, 96552, 96696, 96834, 96966, 97092, 97214, 97330, 97441, 97548, 97650, 97748, 97842, 97932 }; int tab92jo17[combientab92] = { 4128, 8086, 11881, 15519, 19007, 22350, 25556, 28630, 31576, 34401, 37109, 39705, 42195, 44581, 46869, 49063, 51165, 53182, 55114, 56968, 58744, 60447, 62080, 63646, 65147, 66585, 67965, 69288, 70555, 71771, 72936, 74054, 75125, 76152, 77136, 78080, 78985, 79853, 80685, 81482, 82247, 82979, 83682, 84356, 85002, 85621, 86215, 86784, 87329, 87852, 88354, 88835, 89296, 89738, 90161, 90567, 90957, 91330, 91688, 92031, 92360, 92676, 92978, 93268, 93546, 93812, 94068, 94313, 94547, 94773, 94988, 95195, 95394, 95584, 95766, 95941, 96109, 96269, 96423, 96571, 96712, 96848, 96978, 97103, 97223, 97337, 97447, 97553, 97654, 97751, 97843, 97932 }; int tab93jo17[combientab93] = { 4085, 8003, 11761, 15366, 18823, 22139, 25320, 28370, 31296, 34103, 36795, 39377, 41853, 44228, 46507, 48692, 50788, 52798, 54726, 56576, 58349, 60051, 61683, 63248, 64749, 66189, 67570, 68895, 70166, 71385, 72553, 73675, 74750, 75781, 76771, 77720, 78630, 79503, 80340, 81143, 81913, 82652, 83361, 84041, 84693, 85318, 85918, 86493, 87045, 87574, 88081, 88568, 89035, 89483, 89913, 90325, 90720, 91099, 91463, 91812, 92146, 92467, 92775, 93070, 93353, 93624, 93885, 94135, 94374, 94604, 94824, 95036, 95239, 95433, 95620, 95799, 95970, 96135, 96293, 96444, 96589, 96729, 96862, 96991, 97114, 97231, 97345, 97453, 97557, 97657, 97753, 97844, 97932 }; int tab94jo17[combientab94] = { 4042, 7921, 11644, 15215, 18643, 21931, 25087, 28116, 31021, 33810, 36485, 39053, 41517, 43881, 46149, 48326, 50415, 52419, 54343, 56189, 57960, 59659, 61290, 62855, 64356, 65797, 67180, 68506, 69779, 71001, 72173, 73298, 74378, 75413, 76407, 77361, 78276, 79154, 79997, 80806, 81581, 82326, 83040, 83726, 84384, 85015, 85621, 86202, 86760, 87295, 87809, 88302, 88774, 89228, 89664, 90081, 90482, 90867, 91236, 91591, 91931, 92257, 92570, 92870, 93158, 93435, 93700, 93955, 94199, 94434, 94659, 94875, 95082, 95281, 95471, 95655, 95830, 95999, 96161, 96316, 96465, 96608, 96745, 96876, 97003, 97124, 97240, 97352, 97459, 97561, 97660, 97755, 97845, 97932 }; int tab95jo17[combientab95] = { 4001, 7841, 11528, 15068, 18466, 21728, 24859, 27865, 30751, 33522, 36181, 38734, 41185, 43538, 45797, 47966, 50048, 52046, 53965, 55806, 57574, 59272, 60901, 62465, 63967, 65409, 66792, 68121, 69396, 70621, 71796, 72924, 74008, 75048, 76046, 77004, 77924, 78807, 79655, 80469, 81251, 82001, 82721, 83412, 84076, 84713, 85324, 85911, 86475, 87016, 87536, 88034, 88513, 88973, 89414, 89837, 90244, 90634, 91009, 91369, 91714, 92045, 92364, 92669, 92962, 93244, 93514, 93774, 94023, 94262, 94492, 94712, 94923, 95127, 95322, 95509, 95688, 95861, 96026, 96185, 96338, 96485, 96625, 96760, 96890, 97014, 97134, 97248, 97358, 97464, 97566, 97663, 97756, 97846, 97932 }; int tab96jo17[combientab96] = { 3960, 7763, 11415, 14923, 18292, 21528, 24635, 27619, 30486, 33238, 35882, 38421, 40859, 43201, 45450, 47611, 49685, 51677, 53591, 55429, 57194, 58889, 60517, 62080, 63582, 65024, 66409, 67739, 69017, 70243, 71422, 72553, 73640, 74684, 75687, 76649, 77574, 78462, 79315, 80134, 80921, 81676, 82402, 83099, 83768, 84411, 85028, 85621, 86190, 86737, 87262, 87767, 88251, 88716, 89163, 89592, 90004, 90400, 90780, 91145, 91496, 91833, 92156, 92467, 92765, 93052, 93327, 93591, 93845, 94089, 94323, 94547, 94763, 94971, 95170, 95361, 95545, 95721, 95891, 96053, 96210, 96360, 96504, 96642, 96775, 96903, 97026, 97143, 97257, 97365, 97470, 97570, 97666, 97758, 97847, 97932 }; int tab97jo17[combientab97] = { 3920, 7686, 11305, 14781, 18122, 21331, 24415, 27378, 30225, 32960, 35588, 38112, 40538, 42869, 45109, 47260, 49328, 51314, 53222, 55056, 56818, 58510, 60137, 61699, 63201, 64643, 66029, 67361, 68640, 69869, 71050, 72185, 73275, 74323, 75330, 76297, 77226, 78118, 78976, 79800, 80592, 81353, 82084, 82786, 83461, 84109, 84732, 85331, 85906, 86458, 86989, 87499, 87989, 88460, 88912, 89347, 89764, 90166, 90551, 90921, 91277, 91619, 91948, 92263, 92567, 92858, 93138, 93407, 93665, 93914, 94152, 94381, 94602, 94813, 95017, 95212, 95400, 95580, 95753, 95920, 96080, 96233, 96381, 96523, 96659, 96790, 96916, 97037, 97153, 97265, 97372, 97475, 97574, 97669, 97760, 97848, 97932 }; int tab98jo17[combientab98] = { 3881, 7611, 11196, 14642, 17955, 21138, 24199, 27140, 29968, 32686, 35298, 37809, 40222, 42542, 44772, 46915, 48975, 50955, 52858, 54688, 56446, 58136, 59761, 61322, 62823, 64266, 65653, 66986, 68267, 69498, 70682, 71820, 72913, 73964, 74975, 75946, 76879, 77776, 78639, 79468, 80265, 81030, 81767, 82474, 83154, 83808, 84436, 85040, 85621, 86179, 86715, 87231, 87726, 88203, 88660, 89100, 89523, 89930, 90321, 90696, 91057, 91404, 91738, 92059, 92367, 92663, 92948, 93221, 93484, 93737, 93980, 94214, 94438, 94654, 94862, 95061, 95253, 95437, 95614, 95784, 95948, 96105, 96256, 96402, 96541, 96675, 96804, 96928, 97048, 97162, 97272, 97378, 97480, 97578, 97672, 97762, 97849, 97932 }; int tab99jo17[combientab99] = { 3842, 7537, 11089, 14506, 17790, 20949, 23986, 26907, 29715, 32416, 35013, 37510, 39911, 42219, 44439, 46574, 48627, 50601, 52499, 54324, 56079, 57766, 59389, 60949, 62450, 63893, 65280, 66614, 67897, 69130, 70316, 71457, 72553, 73608, 74622, 75597, 76535, 77436, 78303, 79137, 79938, 80709, 81450, 82163, 82849, 83508, 84141, 84751, 85336, 85900, 86442, 86963, 87463, 87945, 88408, 88854, 89282, 89694, 90090, 90471, 90837, 91189, 91527, 91853, 92166, 92467, 92756, 93035, 93302, 93560, 93807, 94045, 94274, 94494, 94705, 94909, 95104, 95293, 95473, 95647, 95815, 95975, 96130, 96279, 96422, 96559, 96691, 96818, 96941, 97058, 97171, 97280, 97384, 97485, 97582, 97675, 97764, 97850, 97932 }; int tab100jo17[combientab100] = { 3805, 7464, 10985, 14371, 17629, 20763, 23778, 26678, 29467, 32151, 34732, 37215, 39604, 41901, 44112, 46238, 48284, 50251, 52144, 53965, 55716, 57401, 59021, 60580, 62080, 63523, 64911, 66246, 67530, 68765, 69954, 71097, 72196, 73254, 74272, 75250, 76192, 77098, 77969, 78807, 79614, 80389, 81135, 81853, 82543, 83208, 83846, 84461, 85052, 85621, 86168, 86694, 87200, 87687, 88156, 88606, 89040, 89457, 89858, 90244, 90615, 90972, 91316, 91646, 91964, 92270, 92564, 92847, 93119, 93381, 93632, 93875, 94108, 94332, 94547, 94755, 94954, 95146, 95331, 95509, 95680, 95844, 96002, 96154, 96300, 96441, 96577, 96707, 96832, 96953, 97069, 97180, 97287, 97391, 97490, 97585, 97677, 97766, 97851, 97932 }; int tab101jo17[combientab101] = { 3768, 7393, 10882, 14240, 17471, 20580, 23572, 26452, 29223, 31889, 34456, 36925, 39301, 41588, 43789, 45907, 47945, 49906, 51793, 53610, 55357, 57039, 58658, 60215, 61714, 63157, 64545, 65881, 67166, 68403, 69594, 70739, 71842, 72903, 73923, 74906, 75851, 76761, 77637, 78479, 79290, 80070, 80821, 81544, 82239, 82908, 83552, 84172, 84768, 85342, 85894, 86426, 86937, 87429, 87903, 88359, 88797, 89219, 89626, 90016, 90393, 90755, 91103, 91438, 91761, 92071, 92370, 92657, 92934, 93200, 93456, 93703, 93940, 94168, 94388, 94600, 94803, 94999, 95187, 95369, 95543, 95711, 95873, 96028, 96178, 96322, 96460, 96594, 96722, 96846, 96964, 97079, 97189, 97295, 97397, 97495, 97589, 97680, 97767, 97851, 97932 }; int tab102jo17[combientab102] = { 3731, 7323, 10782, 14111, 17315, 20401, 23371, 26230, 28983, 31633, 34184, 36639, 39004, 41280, 43471, 45580, 47611, 49565, 51447, 53259, 55003, 56682, 58298, 59854, 61352, 62794, 64183, 65519, 66806, 68044, 69237, 70385, 71490, 72553, 73578, 74563, 75513, 76426, 77306, 78153, 78968, 79753, 80508, 81235, 81936, 82610, 83259, 83883, 84485, 85064, 85621, 86157, 86674, 87171, 87650, 88111, 88554, 88981, 89393, 89788, 90169, 90536, 90889, 91229, 91557, 91872, 92175, 92467, 92748, 93019, 93279, 93530, 93771, 94004, 94227, 94443, 94650, 94850, 95042, 95227, 95405, 95577, 95742, 95900, 96053, 96201, 96342, 96479, 96610, 96737, 96859, 96976, 97089, 97197, 97302, 97403, 97499, 97593, 97683, 97769, 97852, 97932 }; int tab103jo17[combientab103] = { 3696, 7255, 10683, 13984, 17163, 20224, 23172, 26012, 28746, 31380, 33916, 36358, 38710, 40975, 43157, 45258, 47281, 49229, 51105, 52913, 54653, 56329, 57943, 59497, 60994, 62436, 63824, 65161, 66448, 67688, 68883, 70033, 71140, 72207, 73234, 74223, 75176, 76093, 76977, 77828, 78647, 79436, 80196, 80928, 81633, 82312, 82966, 83595, 84201, 84785, 85348, 85889, 86411, 86913, 87397, 87862, 88311, 88743, 89159, 89560, 89945, 90317, 90675, 91020, 91351, 91671, 91979, 92275, 92561, 92836, 93101, 93356, 93601, 93838, 94065, 94285, 94496, 94699, 94895, 95084, 95266, 95441, 95609, 95771, 95928, 96078, 96223, 96363, 96497, 96627, 96751, 96871, 96987, 97098, 97206, 97309, 97408, 97504, 97596, 97685, 97771, 97853, 97932 }; int tab104jo17[combientab104] = { 3661, 7188, 10586, 13859, 17012, 20051, 22977, 25797, 28514, 31131, 33652, 36081, 38421, 40675, 42847, 44939, 46955, 48897, 50768, 52570, 54307, 55979, 57591, 59144, 60639, 62080, 63468, 64806, 66094, 67335, 68531, 69683, 70793, 71862, 72893, 73885, 74841, 75762, 76649, 77504, 78328, 79121, 79886, 80622, 81331, 82015, 82673, 83307, 83919, 84507, 85074, 85621, 86147, 86654, 87143, 87614, 88067, 88504, 88925, 89330, 89721, 90097, 90460, 90809, 91145, 91470, 91782, 92083, 92373, 92652, 92921, 93180, 93430, 93670, 93902, 94125, 94340, 94547, 94747, 94939, 95125, 95303, 95475, 95641, 95800, 95954, 96102, 96245, 96382, 96515, 96642, 96765, 96884, 96998, 97108, 97214, 97316, 97414, 97509, 97600, 97688, 97772, 97854, 97932 }; int tab105jo17[combientab105] = { 3627, 7122, 10490, 13736, 16865, 19880, 22786, 25586, 28285, 30886, 33392, 35808, 38136, 40380, 42542, 44626, 46634, 48569, 50435, 52232, 53965, 55634, 57243, 58794, 60288, 61728, 63116, 64454, 65743, 66986, 68183, 69337, 70449, 71521, 72553, 73549, 74508, 75433, 76324, 77182, 78010, 78807, 79576, 80317, 81030, 81718, 82381, 83020, 83636, 84230, 84802, 85353, 85884, 86396, 86889, 87365, 87823, 88265, 88690, 89100, 89496, 89877, 90244, 90598, 90939, 91267, 91584, 91889, 92183, 92467, 92740, 93003, 93257, 93502, 93737, 93964, 94183, 94394, 94598, 94794, 94982, 95164, 95340, 95509, 95672, 95829, 95980, 96126, 96266, 96402, 96532, 96658, 96779, 96896, 97008, 97117, 97222, 97322, 97419, 97513, 97603, 97690, 97774, 97855, 97932 }; int tab106jo17[combientab106] = { 3593, 7057, 10397, 13616, 16720, 19712, 22597, 25378, 28060, 30644, 33136, 35539, 37855, 40088, 42241, 44316, 46317, 48246, 50105, 51898, 53626, 55293, 56899, 58448, 59941, 61380, 62768, 64105, 65395, 66639, 67837, 68993, 70107, 71181, 72217, 73215, 74177, 75105, 76000, 76862, 77693, 78495, 79268, 80012, 80731, 81423, 82091, 82734, 83354, 83952, 84529, 85085, 85621, 86138, 86636, 87116, 87579, 88025, 88455, 88870, 89270, 89656, 90027, 90386, 90731, 91064, 91385, 91695, 91993, 92281, 92558, 92826, 93083, 93332, 93571, 93802, 94025, 94240, 94447, 94646, 94839, 95024, 95203, 95375, 95541, 95702, 95856, 96005, 96149, 96287, 96420, 96549, 96673, 96793, 96908, 97019, 97126, 97229, 97329, 97425, 97517, 97607, 97693, 97775, 97855, 97932 }; int tab107jo17[combientab107] = { 3560, 6993, 10305, 13498, 16577, 19547, 22412, 25174, 27838, 30407, 32884, 35274, 37578, 39800, 41944, 44010, 46004, 47926, 49780, 51568, 53292, 54955, 56559, 58105, 59597, 61035, 62422, 63760, 65050, 66295, 67495, 68652, 69768, 70844, 71882, 72883, 73848, 74780, 75677, 76543, 77378, 78184, 78960, 79709, 80432, 81128, 81800, 82448, 83073, 83676, 84257, 84817, 85358, 85879, 86382, 86867, 87334, 87785, 88220, 88639, 89044, 89434, 89810, 90173, 90523, 90860, 91186, 91499, 91802, 92094, 92375, 92647, 92909, 93161, 93404, 93639, 93866, 94084, 94295, 94498, 94694, 94883, 95065, 95241, 95410, 95573, 95731, 95883, 96030, 96171, 96307, 96439, 96565, 96688, 96806, 96919, 97029, 97135, 97237, 97335, 97430, 97522, 97610, 97695, 97777, 97856, 97932 }; int tab108jo17[combientab108] = { 3528, 6931, 10214, 13382, 16437, 19385, 22229, 24973, 27619, 30173, 32636, 35013, 37305, 39517, 41651, 43709, 45695, 47611, 49459, 51242, 52962, 54621, 56222, 57766, 59256, 60694, 62080, 63418, 64708, 65953, 67155, 68313, 69431, 70509, 71550, 72553, 73522, 74456, 75357, 76226, 77065, 77874, 78655, 79408, 80134, 80835, 81511, 82163, 82792, 83399, 83985, 84550, 85095, 85621, 86128, 86618, 87090, 87545, 87984, 88408, 88817, 89212, 89592, 89959, 90314, 90655, 90985, 91303, 91610, 91906, 92191, 92467, 92733, 92989, 93236, 93475, 93705, 93927, 94141, 94348, 94547, 94740, 94925, 95104, 95277, 95444, 95604, 95760, 95909, 96053, 96193, 96327, 96457, 96582, 96702, 96818, 96931, 97039, 97143, 97244, 97341, 97435, 97526, 97613, 97697, 97778, 97857, 97932 }; int tab109jo17[combientab109] = { 3496, 6870, 10125, 13267, 16300, 19226, 22050, 24775, 27404, 29942, 32392, 34755, 37036, 39237, 41361, 43411, 45390, 47299, 49141, 50919, 52635, 54291, 55889, 57431, 58919, 60355, 61741, 63079, 64370, 65615, 66817, 67977, 69097, 70177, 71220, 72226, 73197, 74134, 75038, 75911, 76753, 77566, 78350, 79107, 79837, 80542, 81222, 81879, 82512, 83124, 83714, 84283, 84833, 85363, 85874, 86368, 86845, 87305, 87749, 88177, 88590, 88989, 89374, 89745, 90104, 90450, 90784, 91106, 91417, 91717, 92007, 92286, 92556, 92816, 93067, 93309, 93543, 93769, 93987, 94197, 94400, 94596, 94785, 94967, 95143, 95313, 95477, 95635, 95787, 95935, 96077, 96214, 96346, 96474, 96597, 96716, 96831, 96942, 97049, 97152, 97251, 97348, 97440, 97530, 97616, 97699, 97780, 97858, 97932 }; int tab110jo17[combientab110] = { 3465, 6809, 10038, 13155, 16164, 19069, 21873, 24580, 27193, 29715, 32151, 34501, 36771, 38961, 41076, 43118, 45089, 46991, 48828, 50601, 52312, 53965, 55560, 57099, 58586, 60021, 61406, 62743, 64034, 65280, 66483, 67644, 68765, 69847, 70892, 71901, 72874, 73814, 74721, 75597, 76443, 77259, 78047, 78807, 79542, 80250, 80935, 81595, 82233, 82849, 83443, 84016, 84570, 85105, 85621, 86119, 86600, 87064, 87512, 87945, 88363, 88766, 89155, 89531, 89894, 90244, 90582, 90908, 91223, 91527, 91821, 92104, 92378, 92642, 92897, 93143, 93381, 93610, 93831, 94045, 94251, 94450, 94643, 94828, 95008, 95181, 95348, 95509, 95664, 95815, 95960, 96100, 96235, 96365, 96491, 96613, 96730, 96843, 96953, 97058, 97160, 97259, 97354, 97445, 97534, 97619, 97702, 97781, 97858, 97932 }; int tab111jo17[combientab111] = { 3434, 6750, 9952, 13045, 16031, 18914, 21699, 24388, 26984, 29492, 31913, 34251, 36509, 38689, 40795, 42828, 44791, 46687, 48518, 50286, 51993, 53642, 55234, 56771, 58255, 59689, 61073, 62410, 63701, 64947, 66151, 67314, 68436, 69520, 70567, 71577, 72553, 73496, 74406, 75285, 76134, 76953, 77745, 78509, 79247, 79960, 80648, 81312, 81954, 82574, 83172, 83750, 84308, 84847, 85367, 85870, 86355, 86824, 87276, 87713, 88135, 88543, 88936, 89316, 89683, 90037, 90379, 90710, 91029, 91337, 91634, 91922, 92199, 92467, 92726, 92975, 93217, 93450, 93674, 93892, 94101, 94304, 94500, 94689, 94871, 95047, 95217, 95381, 95540, 95693, 95841, 95984, 96122, 96255, 96384, 96508, 96628, 96743, 96855, 96963, 97068, 97168, 97266, 97359, 97450, 97538, 97622, 97704, 97783, 97859, 97932 }; int tab112jo17[combientab112] = { 3404, 6692, 9868, 12936, 15900, 18762, 21528, 24199, 26779, 29271, 31679, 34005, 36251, 38421, 40517, 42542, 44498, 46387, 48212, 49975, 51677, 53322, 54911, 56446, 57929, 59361, 60744, 62080, 63371, 64618, 65822, 66986, 68109, 69195, 70243, 71256, 72235, 73180, 74093, 74975, 75827, 76649, 77444, 78212, 78954, 79670, 80362, 81030, 81676, 82300, 82902, 83484, 84047, 84590, 85114, 85621, 86110, 86583, 87040, 87481, 87907, 88319, 88716, 89100, 89471, 89830, 90176, 90510, 90833, 91145, 91447, 91738, 92019, 92291, 92553, 92807, 93052, 93288, 93517, 93737, 93951, 94156, 94355, 94547, 94733, 94912, 95086, 95253, 95414, 95570, 95721, 95867, 96008, 96144, 96275, 96402, 96524, 96642, 96757, 96867, 96974, 97077, 97176, 97272, 97365, 97455, 97542, 97625, 97706, 97784, 97860, 97932 }; int tab113jo17[combientab113] = { 3374, 6635, 9785, 12829, 15771, 18613, 21359, 24013, 26577, 29054, 31448, 33761, 35996, 38156, 40243, 42259, 44208, 46090, 47909, 49667, 51365, 53007, 54592, 56124, 57605, 59036, 60418, 61753, 63044, 64291, 65496, 66660, 67785, 68872, 69923, 70937, 71918, 72866, 73781, 74666, 75521, 76347, 77145, 77916, 78661, 79381, 80077, 80749, 81399, 82027, 82633, 83219, 83785, 84332, 84861, 85372, 85866, 86343, 86803, 87249, 87679, 88095, 88496, 88885, 89260, 89622, 89972, 90311, 90638, 90953, 91259, 91554, 91839, 92114, 92380, 92637, 92886, 93126, 93358, 93582, 93798, 94008, 94210, 94405, 94594, 94776, 94953, 95123, 95288, 95447, 95600, 95749, 95892, 96031, 96165, 96294, 96419, 96540, 96657, 96770, 96879, 96984, 97086, 97184, 97279, 97371, 97460, 97545, 97628, 97708, 97785, 97860, 97932 }; int tab114jo17[combientab114] = { 3345, 6579, 9704, 12724, 15644, 18466, 21193, 23829, 26378, 28840, 31221, 33522, 35745, 37895, 39972, 41981, 43921, 45797, 47611, 49363, 51057, 52694, 54277, 55806, 57285, 58714, 60095, 61430, 62720, 63967, 65172, 66337, 67463, 68552, 69604, 70621, 71604, 72553, 73472, 74359, 75217, 76046, 76847, 77622, 78370, 79094, 79793, 80469, 81122, 81754, 82364, 82954, 83525, 84076, 84608, 85123, 85621, 86102, 86567, 87016, 87451, 87870, 88276, 88668, 89047, 89414, 89768, 90110, 90441, 90761, 91070, 91369, 91657, 91936, 92206, 92467, 92719, 92962, 93198, 93425, 93645, 93858, 94063, 94262, 94454, 94639, 94819, 94992, 95160, 95322, 95478, 95629, 95776, 95917, 96053, 96185, 96313, 96436, 96556, 96671, 96782, 96890, 96994, 97094, 97192, 97286, 97376, 97464, 97549, 97631, 97710, 97787, 97861, 97932 }; int tab115jo17[combientab115] = { 3317, 6523, 9623, 12621, 15519, 18321, 21030, 23649, 26181, 28630, 30997, 33285, 35498, 37637, 39705, 41705, 43639, 45508, 47315, 49063, 50752, 52385, 53965, 55491, 56968, 58395, 59775, 61109, 62399, 63646, 64851, 66017, 67144, 68234, 69288, 70306, 71291, 72243, 73164, 74054, 74914, 75746, 76551, 77328, 78080, 78807, 79510, 80190, 80847, 81482, 82096, 82690, 83264, 83819, 84356, 84875, 85376, 85861, 86330, 86784, 87222, 87646, 88056, 88452, 88835, 89205, 89563, 89909, 90244, 90567, 90880, 91183, 91475, 91758, 92031, 92296, 92551, 92798, 93037, 93268, 93491, 93707, 93916, 94118, 94313, 94501, 94684, 94860, 95030, 95195, 95355, 95509, 95658, 95802, 95941, 96076, 96206, 96332, 96453, 96571, 96685, 96795, 96901, 97004, 97103, 97199, 97292, 97382, 97469, 97553, 97634, 97712, 97788, 97861, 97932 }; int tab116jo17[combientab116] = { 3288, 6469, 9545, 12519, 15396, 18178, 20869, 23471, 25988, 28422, 30776, 33052, 35254, 37383, 39442, 41433, 43359, 45222, 47023, 48765, 50450, 52080, 53656, 55180, 56654, 58079, 59458, 60791, 62080, 63327, 64533, 65700, 66827, 67918, 68973, 69994, 70980, 71935, 72858, 73750, 74613, 75448, 76256, 77037, 77792, 78522, 79228, 79911, 80572, 81211, 81829, 82426, 83004, 83563, 84104, 84626, 85132, 85621, 86094, 86551, 86993, 87421, 87835, 88235, 88622, 88996, 89358, 89708, 90046, 90373, 90690, 90996, 91292, 91579, 91856, 92123, 92382, 92633, 92875, 93109, 93336, 93555, 93767, 93972, 94170, 94362, 94547, 94727, 94900, 95068, 95230, 95387, 95539, 95685, 95827, 95964, 96097, 96226, 96350, 96470, 96586, 96698, 96807, 96912, 97013, 97111, 97206, 97298, 97387, 97473, 97556, 97637, 97714, 97789, 97862, 97932 }; int tab117jo17[combientab117] = { 3261, 6415, 9467, 12419, 15275, 18038, 20710, 23296, 25797, 28217, 30558, 32822, 35013, 37132, 39182, 41165, 43083, 44939, 46735, 48472, 50152, 51778, 53350, 54871, 56343, 57766, 59144, 60476, 61765, 63011, 64218, 65384, 66513, 67605, 68661, 69683, 70672, 71628, 72553, 73448, 74314, 75152, 75962, 76746, 77504, 78238, 78947, 79634, 80298, 80940, 81562, 82163, 82745, 83307, 83852, 84378, 84888, 85381, 85857, 86318, 86765, 87196, 87614, 88018, 88408, 88786, 89152, 89506, 89848, 90179, 90499, 90809, 91109, 91399, 91679, 91950, 92213, 92467, 92713, 92950, 93180, 93402, 93618, 93826, 94027, 94222, 94410, 94592, 94769, 94939, 95104, 95264, 95418, 95568, 95712, 95852, 95987, 96118, 96245, 96367, 96486, 96600, 96711, 96818, 96922, 97023, 97120, 97214, 97304, 97392, 97477, 97560, 97639, 97716, 97791, 97863, 97932 }; int tab118jo17[combientab118] = { 3234, 6363, 9391, 12321, 15156, 17900, 20554, 23123, 25609, 28015, 30343, 32595, 34775, 36884, 38925, 40900, 42811, 44660, 46450, 48181, 49857, 51479, 53048, 54566, 56035, 57457, 58832, 60164, 61452, 62698, 63905, 65072, 66201, 67294, 68352, 69375, 70365, 71324, 72251, 73148, 74017, 74857, 75670, 76457, 77218, 77955, 78668, 79357, 80025, 80671, 81296, 81901, 82486, 83052, 83600, 84131, 84644, 85140, 85621, 86086, 86536, 86971, 87392, 87800, 88195, 88576, 88946, 89303, 89649, 89984, 90308, 90621, 90924, 91218, 91502, 91777, 92043, 92300, 92549, 92790, 93023, 93249, 93467, 93678, 93883, 94080, 94272, 94457, 94636, 94810, 94978, 95140, 95297, 95449, 95596, 95739, 95877, 96010, 96139, 96264, 96385, 96502, 96615, 96724, 96830, 96933, 97032, 97128, 97221, 97311, 97397, 97482, 97563, 97642, 97718, 97792, 97863, 97932 }; int tab119jo17[combientab119] = { 3207, 6311, 9316, 12224, 15039, 17763, 20401, 22953, 25424, 27816, 30131, 32371, 34540, 36639, 38671, 40638, 42542, 44384, 46168, 47894, 49565, 51183, 52748, 54264, 55730, 57150, 58524, 59854, 61142, 62388, 63594, 64762, 65892, 66986, 68044, 69069, 70061, 71021, 71951, 72850, 73721, 74563, 75379, 76169, 76933, 77673, 78389, 79082, 79753, 80402, 81030, 81639, 82228, 82798, 83349, 83883, 84400, 84900, 85385, 85853, 86307, 86746, 87171, 87583, 87981, 88366, 88739, 89100, 89450, 89788, 90116, 90433, 90740, 91037, 91324, 91602, 91872, 92132, 92385, 92629, 92865, 93094, 93315, 93530, 93737, 93938, 94133, 94321, 94503, 94679, 94850, 95015, 95175, 95330, 95479, 95624, 95765, 95900, 96032, 96159, 96282, 96402, 96517, 96629, 96737, 96841, 96943, 97041, 97136, 97228, 97316, 97403, 97486, 97566, 97644, 97720, 97793, 97864, 97932 }; int tab120jo17[combientab120] = { 3181, 6260, 9242, 12128, 14923, 17629, 20249, 22786, 25242, 27619, 29922, 32151, 34309, 36398, 38421, 40380, 42276, 44112, 45889, 47611, 49277, 50890, 52452, 53965, 55429, 56846, 58219, 59548, 60834, 62080, 63286, 64454, 65585, 66679, 67739, 68765, 69759, 70721, 71652, 72553, 73426, 74272, 75090, 75882, 76649, 77392, 78111, 78807, 79481, 80134, 80766, 81378, 81970, 82543, 83099, 83636, 84157, 84661, 85149, 85621, 86078, 86521, 86950, 87365, 87767, 88156, 88533, 88897, 89250, 89592, 89923, 90244, 90554, 90855, 91145, 91427, 91700, 91964, 92219, 92467, 92706, 92938, 93163, 93381, 93591, 93795, 93992, 94183, 94368, 94547, 94721, 94889, 95051, 95209, 95361, 95509, 95652, 95790, 95924, 96053, 96179, 96300, 96418, 96532, 96642, 96749, 96853, 96953, 97050, 97143, 97234, 97322, 97407, 97490, 97570, 97647, 97722, 97794, 97864, 97932 }; int tab121jo17[combientab121] = { 3155, 6210, 9169, 12034, 14810, 17497, 20100, 22621, 25062, 27426, 29715, 31933, 34080, 36160, 38174, 40124, 42013, 43842, 45614, 47330, 48992, 50601, 52159, 53668, 55130, 56546, 57917, 59244, 60530, 61775, 62981, 64149, 65280, 66375, 67436, 68463, 69458, 70422, 71355, 72259, 73134, 73981, 74802, 75597, 76367, 77113, 77835, 78534, 79211, 79867, 80502, 81117, 81713, 82290, 82849, 83390, 83914, 84421, 84913, 85389, 85850, 86296, 86728, 87147, 87552, 87945, 88325, 88694, 89050, 89396, 89730, 90054, 90368, 90672, 90966, 91251, 91527, 91795, 92053, 92304, 92547, 92782, 93010, 93230, 93444, 93651, 93851, 94045, 94233, 94415, 94591, 94762, 94927, 95087, 95242, 95392, 95537, 95678, 95815, 95947, 96074, 96198, 96318, 96434, 96547, 96656, 96761, 96863, 96962, 97058, 97151, 97241, 97328, 97412, 97494, 97573, 97650, 97724, 97796, 97865, 97932 }; int tab122jo17[combientab122] = { 3129, 6161, 9097, 11942, 14698, 17367, 19953, 22458, 24884, 27235, 29512, 31718, 33855, 35924, 37930, 39872, 41754, 43576, 45342, 47052, 48709, 50314, 51869, 53375, 54834, 56248, 57617, 58943, 60228, 61473, 62678, 63846, 64978, 66073, 67135, 68164, 69160, 70125, 71060, 71965, 72843, 73693, 74516, 75313, 76086, 76834, 77559, 78261, 78942, 79601, 80239, 80857, 81456, 82037, 82599, 83143, 83671, 84182, 84677, 85156, 85621, 86071, 86507, 86929, 87338, 87734, 88118, 88490, 88850, 89199, 89537, 89864, 90182, 90489, 90787, 91075, 91354, 91625, 91887, 92141, 92387, 92625, 92856, 93079, 93296, 93506, 93709, 93906, 94096, 94281, 94460, 94633, 94801, 94964, 95122, 95274, 95422, 95565, 95704, 95839, 95969, 96095, 96217, 96336, 96450, 96561, 96669, 96773, 96874, 96972, 97067, 97159, 97247, 97334, 97417, 97498, 97576, 97652, 97725, 97797, 97866, 97932 }; int tab123jo17[combientab123] = { 3104, 6112, 9027, 11851, 14587, 17239, 19808, 22297, 24709, 27047, 29311, 31506, 33632, 35692, 37688, 39623, 41497, 43313, 45073, 46778, 48430, 50031, 51582, 53085, 54542, 55953, 57320, 58645, 59929, 61173, 62378, 63546, 64678, 65774, 66836, 67866, 68864, 69830, 70767, 71674, 72553, 73405, 74231, 75031, 75806, 76557, 77285, 77990, 78673, 79335, 79977, 80598, 81201, 81784, 82350, 82898, 83429, 83943, 84441, 84924, 85392, 85846, 86285, 86711, 87123, 87523, 87911, 88286, 88649, 89002, 89343, 89674, 89995, 90305, 90606, 90898, 91180, 91454, 91719, 91976, 92226, 92467, 92701, 92927, 93147, 93360, 93566, 93765, 93959, 94147, 94328, 94504, 94675, 94840, 95000, 95156, 95306, 95452, 95593, 95730, 95862, 95991, 96115, 96236, 96353, 96466, 96576, 96682, 96785, 96885, 96981, 97075, 97166, 97254, 97339, 97422, 97502, 97579, 97654, 97727, 97798, 97866, 97932 }; int tab124jo17[combientab124] = { 3080, 6064, 8957, 11761, 14479, 17112, 19665, 22139, 24537, 26861, 29113, 31296, 33412, 35463, 37450, 39377, 41244, 43053, 44807, 46507, 48154, 49751, 51298, 52798, 54252, 55660, 57026, 58349, 59632, 60875, 62080, 63248, 64380, 65477, 66540, 67570, 68569, 69537, 70475, 71385, 72266, 73120, 73948, 74750, 75528, 76281, 77012, 77720, 78406, 79071, 79715, 80340, 80946, 81532, 82101, 82652, 83187, 83704, 84206, 84693, 85164, 85621, 86064, 86493, 86909, 87312, 87703, 88081, 88449, 88804, 89149, 89483, 89807, 90121, 90425, 90720, 91006, 91283, 91551, 91812, 92064, 92308, 92545, 92775, 92997, 93213, 93422, 93624, 93821, 94011, 94195, 94374, 94547, 94715, 94878, 95036, 95189, 95337, 95481, 95620, 95755, 95885, 96012, 96135, 96254, 96369, 96481, 96589, 96694, 96796, 96895, 96991, 97083, 97173, 97260, 97345, 97426, 97506, 97582, 97657, 97729, 97799, 97867, 97932 }; int tab125jo17[combientab125] = { 3055, 6017, 8889, 11673, 14371, 16988, 19524, 21983, 24367, 26678, 28918, 31090, 33195, 35236, 37215, 39133, 40993, 42796, 44544, 46238, 47881, 49473, 51017, 52514, 53965, 55371, 56735, 58057, 59338, 60580, 61785, 62953, 64084, 65182, 66246, 67277, 68277, 69246, 70186, 71097, 71980, 72836, 73666, 74470, 75250, 76007, 76740, 77450, 78139, 78807, 79455, 80083, 80691, 81281, 81853, 82407, 82945, 83466, 83971, 84461, 84936, 85396, 85842, 86275, 86694, 87101, 87495, 87877, 88247, 88606, 88955, 89292, 89619, 89936, 90244, 90542, 90831, 91111, 91383, 91646, 91901, 92149, 92389, 92621, 92847, 93065, 93277, 93482, 93682, 93875, 94062, 94243, 94419, 94590, 94755, 94915, 95071, 95221, 95367, 95509, 95646, 95779, 95908, 96033, 96154, 96272, 96386, 96496, 96603, 96707, 96807, 96905, 97000, 97091, 97180, 97266, 97350, 97431, 97509, 97585, 97659, 97731, 97800, 97867, 97932 }; int tab126jo17[combientab126] = { 3032, 5971, 8822, 11586, 14266, 16865, 19385, 21829, 24199, 26497, 28725, 30886, 32981, 35013, 36983, 38893, 40746, 42542, 44284, 45973, 47611, 49199, 50739, 52232, 53680, 55084, 56446, 57766, 59047, 60288, 61492, 62659, 63791, 64889, 65953, 66986, 67986, 68957, 69898, 70811, 71695, 72553, 73385, 74192, 74975, 75733, 76469, 77182, 77874, 78545, 79195, 79826, 80437, 81030, 81606, 82163, 82704, 83228, 83737, 84230, 84708, 85171, 85621, 86057, 86479, 86889, 87287, 87672, 88046, 88408, 88760, 89100, 89431, 89751, 90062, 90363, 90655, 90939, 91213, 91480, 91738, 91988, 92231, 92467, 92695, 92917, 93131, 93340, 93542, 93737, 93927, 94111, 94290, 94463, 94631, 94794, 94951, 95104, 95253, 95397, 95536, 95672, 95803, 95930, 96053, 96173, 96289, 96402, 96511, 96616, 96719, 96818, 96915, 97008, 97099, 97187, 97272, 97355, 97435, 97513, 97588, 97661, 97732, 97801, 97868, 97932 }; int tab127jo17[combientab127] = { 3008, 5926, 8755, 11500, 14162, 16744, 19248, 21677, 24033, 26318, 28535, 30684, 32769, 34792, 36753, 38656, 40501, 42291, 44026, 45710, 47343, 48927, 50463, 51953, 53399, 54800, 56160, 57479, 58758, 59998, 61202, 62369, 63501, 64598, 65663, 66696, 67698, 68670, 69612, 70526, 71413, 72273, 73107, 73916, 74700, 75461, 76199, 76915, 77610, 78283, 78936, 79570, 80185, 80781, 81359, 81919, 82463, 82991, 83502, 83999, 84480, 84947, 85400, 85839, 86265, 86678, 87079, 87467, 87844, 88210, 88565, 88909, 89242, 89566, 89880, 90184, 90479, 90766, 91043, 91313, 91574, 91828, 92073, 92312, 92543, 92767, 92985, 93196, 93401, 93599, 93792, 93978, 94160, 94335, 94506, 94671, 94831, 94987, 95138, 95284, 95426, 95563, 95697, 95826, 95952, 96073, 96192, 96306, 96417, 96525, 96630, 96731, 96829, 96925, 97017, 97107, 97194, 97278, 97360, 97440, 97517, 97591, 97664, 97734, 97802, 97868, 97932 }; int tab128jo17[combientab128] = { 2985, 5881, 8690, 11415, 14060, 16625, 19113, 21528, 23870, 26142, 28347, 30486, 32561, 34573, 36526, 38421, 40259, 42042, 43772, 45450, 47079, 48658, 50191, 51677, 53120, 54519, 55877, 57194, 58471, 59711, 60914, 62080, 63212, 64310, 65375, 66409, 67412, 68384, 69328, 70243, 71132, 71993, 72829, 73640, 74427, 75190, 75931, 76649, 77346, 78023, 78679, 79315, 79932, 80531, 81112, 81676, 82223, 82754, 83269, 83768, 84252, 84722, 85178, 85621, 86050, 86466, 86870, 87262, 87643, 88011, 88369, 88716, 89053, 89380, 89697, 90004, 90303, 90592, 90873, 91145, 91410, 91666, 91915, 92156, 92390, 92618, 92838, 93052, 93259, 93460, 93655, 93845, 94029, 94207, 94380, 94547, 94710, 94868, 95021, 95170, 95314, 95454, 95590, 95721, 95849, 95973, 96093, 96210, 96323, 96433, 96539, 96642, 96743, 96840, 96934, 97026, 97114, 97201, 97284, 97365, 97444, 97520, 97594, 97666, 97736, 97803, 97869, 97932 }; int *table[] = { tab1jo17, tab2jo17, tab3jo17, tab4jo17, tab5jo17, tab6jo17, tab7jo17, tab8jo17, tab9jo17, tab10jo17, tab11jo17, tab12jo17, tab13jo17, tab14jo17, tab15jo17, tab16jo17, tab17jo17, tab18jo17, tab19jo17, tab20jo17, tab21jo17, tab22jo17, tab23jo17, tab24jo17, tab25jo17, tab26jo17, tab27jo17, tab28jo17, tab29jo17, tab30jo17, tab31jo17, tab32jo17, tab33jo17, tab34jo17, tab35jo17, tab36jo17, tab37jo17, tab38jo17, tab39jo17, tab40jo17, tab41jo17, tab42jo17, tab43jo17, tab44jo17, tab45jo17, tab46jo17, tab47jo17, tab48jo17, tab49jo17, tab50jo17, tab51jo17, tab52jo17, tab53jo17, tab54jo17, tab55jo17, tab56jo17, tab57jo17, tab58jo17, tab59jo17, tab60jo17, tab61jo17, tab62jo17, tab63jo17, tab64jo17, tab65jo17, tab66jo17, tab67jo17, tab68jo17, tab69jo17, tab70jo17, tab71jo17, tab72jo17, tab73jo17, tab74jo17, tab75jo17, tab76jo17, tab77jo17, tab78jo17, tab79jo17, tab80jo17, tab81jo17, tab82jo17, tab83jo17, tab84jo17, tab85jo17, tab86jo17, tab87jo17, tab88jo17, tab89jo17, tab90jo17, tab91jo17, tab92jo17, tab93jo17, tab94jo17, tab95jo17, tab96jo17, tab97jo17, tab98jo17, tab99jo17, tab100jo17, tab101jo17, tab102jo17, tab103jo17, tab104jo17, tab105jo17, tab106jo17, tab107jo17, tab108jo17, tab109jo17, tab110jo17, tab111jo17, tab112jo17, tab113jo17, tab114jo17, tab115jo17, tab116jo17, tab117jo17, tab118jo17, tab119jo17, tab120jo17, tab121jo17, tab122jo17, tab123jo17, tab124jo17, tab125jo17, tab126jo17, tab127jo17, tab128jo17 }; unsigned char tab1[total1] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF }; jojo = fopen (ajo, "rb"); if (jojo == NULL) { printf ("Ce fichier ne va pas %s\n", ajo); exit (1); } if (jojo != NULL) { int assemble = 0; int ludion = 32768; int enclanche = 0; int nbdepoints; int ouaitu; int amplitude = 32768; int force1 = 0; int joencour; float jo; abadie = fgetc (jojo); /* abadie vient chercher tout ce qui bouge */ while (abadie != EOF) { for (ouaitu = 0; ouaitu < 255; ouaitu++) { if (abadie == tab1[ouaitu]) { force1 = ouaitu; assemble++; } } /***debut assemble***/ switch (assemble) { case 1: amplitude = (force1 * 256); /****************************traitement*amplitude****/ break; default: nbdepoints = force1; /****fin traitement bin******/ joencour = 17; float okioki; float okioki1; okioki = (float) (nbdepoints); okioki1 = (float) (joencour); jo = (okioki * okioki1 * (0.01)); if (jo < 2) { jo = 1; } int sens; if (ludion > amplitude) { sens = 2; } else { sens = 1; } /***fin conversion***/ double codebash; FILE *temps = NULL; char tab[total] = { 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F }; char *ptr; char *petr; temps = fopen (awav, "ab"); /* pour ajouter a. possible w ou r+ w+ tester */ if (temps != NULL) { /*******/ if (sens == 2) /*ajouter dessous*/ { if (nbdepoints < 2) { codebash = (int) (amplitude); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); } else { float ote, ote1; ote1 = 1; int boucle; boucle = nbdepoints * 0.5; int reste; reste = nbdepoints - boucle; ote = (ludion - amplitude) * 0.5; int i, j, *p; for (i = boucle - 1; i + 1 > 0; i--) { for (p = table[boucle - 1], j = 0; j < placement[i]; j++) ote1 = ote * 0.00001 * p[j]; /* fprintf(temps,"%d ", (int)codebash ); */ codebash = (int) (amplitude + ote + ote1); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); /*fin modif*/ } enclanche = 2; /*** deuxieme enclanche du sens 2**********/ if (enclanche == 2) { float ote, ote1; ote1 = 1; ote = (ludion - amplitude) * 0.5; int i, j, *p; for (i = 0; i < reste; i++) { for (p = table[reste], j = 0; j < placement[i]; j++) ote1 = ote * 0.00001 * p[j]; codebash = (int) (ludion - ote - ote1); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); /*fin modif*/ } enclanche = 0; /* fin descente 2*/ } } } /*en attente*/ /**********/ if (sens == 1) { if (nbdepoints < 2) { codebash = (int) (amplitude); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); } else { float ote, ote1; ote1 = 1; int boucle; boucle = nbdepoints * 0.5; int ajuste; ajuste = nbdepoints - boucle; if (boucle == 0) { boucle = 1; } ote = (amplitude - ludion) * 0.5; int i, j, *p; for (i = boucle - 1; i + 1 > 0; i--) { for (p = table[boucle - 1], j = 0; j < placement[i]; j++) ote1 = ote * 0.00001 * p[j]; codebash = amplitude - ote - ote1; /* fprintf(temps,"%d ", (int)codebash ); */ codebash = (int) (amplitude - ote - ote1); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); /*fin modif*/ } enclanche = 1; /* debut descente inverse du sens 1 */ if (enclanche == 1) { float ote, ote1; ote1 = 1; int boucle, boncompte; boucle = 1; ote = (amplitude - ludion) * 0.5; boncompte = ajuste; if (boncompte == 0) { boncompte = 1; } int i, j, *p; for (i = 0; i < boncompte; i++) { for (p = table[boncompte], j = 0; j < placement[i]; j++) ote1 = ote * 0.00001 * p[j]; codebash = (int) (ludion + ote + ote1); int ji; int ij; int ola; ola = (int) codebash; /*ji = ola%256;*/ ij = (int) (ola * 0.00390625); ji = ola - (256 * ij); ptr = &tab[ji]; petr = &tab[ij]; fwrite (ptr, sizeof (char), 1, temps); fwrite (petr, sizeof (char), 1, temps); /*fin modif*/ boucle++; } enclanche = 0; } } } /* fin*/ /********/ /*****/ fclose (temps), temps = NULL;; } ludion = amplitude; /*pas*toucher*/ assemble = 0; } /***fin assemble***/ abadie = fgetc (jojo); /* abadie va chercher la suivante */ } fclose (jojo), jojo = NULL;; } /**************************************************************************************/ // fclose(fichierjo); // fclose(fichierwav); } int main( int argc, char* args[] ) { int piste = 10; conversionJoWav (piste); return 0; }Contact et support: Joris Abadie