File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3A11-FEH71rPh.js.map
{"version":3,"file":"3A11-FEH71rPh.js","sources":["../../src/exercices/3e/3A11.js"],"sourcesContent":["import { combinaisonListesSansChangerOrdre } from '../../lib/outils/arrayOutils'\nimport { warnMessage } from '../../lib/format/message.js'\nimport { modalPdf } from '../../lib/outils/modales.js'\nimport { numAlpha } from '../../lib/outils/outilString.js'\nimport { decompositionFacteursPremiersArray, premiersEntreBornes } from '../../lib/outils/primalite'\nimport { texNombre } from '../../lib/outils/texNombre'\nimport Exercice from '../deprecatedExercice.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nexport const titre = 'Make a fraction irreducible'\n\n/**\n * Fractions irréductibles\n * @author Sébastien Lozano\n * Référence 3A11\n */\nexport const uuid = 'a6667'\nexport const ref = '3A11'\nexport default function FractionsIrreductibles () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.titre = titre\n // no difference between the html version and the latex version for the instructions\n this.consigne = 'Make a fraction and its inverse irreducible from decompositions into the product of prime factors.'\n // this.setpoint += `<br>`;\n context.isHtml ? this.spacing = 4 : this.spacing = 2\n context.isHtml ? this.spacingCorr = 4 : this.spacingCorr = 2\n this.nbQuestions = 1\n // this.DetailedCorrectionAvailable = true;\n this.nbCols = 1\n this.nbColsCorr = 1\n this.listePackages = 'bclogo'\n this.sup = true\n\n this.nouvelleVersion = function (numeroExercice) {\n let typesDeQuestions\n if (context.isHtml) { // les boutons d'aide uniquement pour la version html\n // this.helpbutton = '';\n this.boutonAide = modalPdf(numeroExercice, 'assets/pdf/FicheArithmetique-3A12.pdf', 'Memory aid on functions (Sébastien Lozano)', 'Memory aid')\n // this.buttonHelp += modalVideo('conteMathsNombresPremiers','https://coopmaths.fr/videos/LesNombresPremiers.mp4','Little mathematical tale','Intro Video');\n } else { // sortie LaTeX\n }\n\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.contenu = '' // Liste de questions\n this.contenuCorrection = '' // Liste de questions corrigées\n\n // let AvailableQuestionTypes = [1,2,3,4];\n const typesDeQuestionsDisponibles = [1]\n const listeTypeDeQuestions = combinaisonListesSansChangerOrdre(typesDeQuestionsDisponibles, this.nbQuestions)\n\n this.introduction = warnMessage('At the question' + numAlpha(3, true) + ', a judicious and reasoned observation can save time!', 'numbers', 'Help')\n\n for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n typesDeQuestions = listeTypeDeQuestions[i]\n\n let nb1 // nbre 1\n let nb2 // nbre 2\n\n // we set the choice table\n const candidatsPremiersCommuns = this.sup ? [2, 3, 5] : premiersEntreBornes(2, 13) // tableau des candidats premiers communs\n // we fix the number of common prime divisors\n const nbDivPremCommuns = this.sup ? 3 : 4 // nombre de diviseurs premiers communs\n // we initialize the table of common prime divisors\n const premiersCommuns = [] // tableau des diviseurs premiers communs\n // we initialize the rank table\n const r = [] // tableau pour le choix des rangs des diviseurs premiers communs\n // we initialize the table of ranks already chosen\n const rExclus = [] // tableau pour la boucle de creation de r\n // we complete the table of ranks of the ranks of the chosen prime divisors\n for (let k = 0; k < nbDivPremCommuns; k++) {\n for (let m = 0; m < k; m++) {\n rExclus.push(r[m])\n }\n r[k] = randint(0, candidatsPremiersCommuns.length - 1, rExclus)\n }\n // we complete the table of common prime divisors\n for (let k = 0; k < nbDivPremCommuns; k++) {\n premiersCommuns.push(candidatsPremiersCommuns[r[k]])\n }\n // we initialize and complete the table of multiplicities of common prime divisors\n const multiplicitesPremiersCommuns = [] // tableau des multiplicités des diviseurs premiers communs\n let zeroDejaDonne = false\n for (let k = 0; k < nbDivPremCommuns; k++) {\n const multipliciteHAsard = zeroDejaDonne ? randint(1, 2) : randint(0, 2)\n if (multipliciteHAsard === 0) zeroDejaDonne = true\n multiplicitesPremiersCommuns.push(multipliciteHAsard)\n }\n // we delete the prime divisors of multiplicity 0 and their multiplicity\n let idx = multiplicitesPremiersCommuns.indexOf(0)\n while (idx !== -1) {\n premiersCommuns.splice(idx, 1)\n multiplicitesPremiersCommuns.splice(idx, 1)\n idx = multiplicitesPremiersCommuns.indexOf(0)\n }\n // we initialize the table of divisors of the first and second numbers with the common prime divisors\n const tabNb1 = [] // tableau pour les diviseurs de nb1\n const tabNb2 = [] // tableau pour les diviseurs de nb2\n for (let k = 0; k < premiersCommuns.length; k++) {\n tabNb1[k] = premiersCommuns[k]\n tabNb2[k] = premiersCommuns[k]\n }\n // we initialize the multiplicity tables, they are the same but we could want them to be different\n const multiplicitesNb1 = []\n const multiplicitesNb2 = []\n for (let k = 0; k < premiersCommuns.length; k++) {\n multiplicitesNb1[k] = multiplicitesPremiersCommuns[k]\n multiplicitesNb2[k] = multiplicitesPremiersCommuns[k]\n }\n // we add a distinct prime factor for each number smaller than myBorne\n const maBorne = this.sup ? 13 : 30\n const rEx = randint(0, premiersEntreBornes(2, maBorne).length - 1) // pour exlcure le rang de nb1\n const nb1Dist = premiersEntreBornes(2, maBorne)[rEx] // diviseur unique du premier nombre\n const nb2Dist = premiersEntreBornes(2, maBorne)[randint(0, premiersEntreBornes(2, maBorne).length - 1, rEx)] // diviseur unique du deuxième nombre\n // we add nb1_dist, nb2_dist in the tables of the prime divisors of the first and second numbers\n // nb1\n let bool = false\n let n = 0\n while (n < tabNb1.length && bool !== true) {\n if (nb1Dist === tabNb1[n]) { // si le diviseur premier est déjà présent on incrémente sa multiplicité\n multiplicitesNb1[n]++\n bool = true\n }\n n++\n }\n // we test the output value of bool and add the new value if necessary\n if (!bool) { // il n'is not present we'ajoute avec la multipplicité 1\n tabNb1.push(nb1Dist)\n multiplicitesNb1.push(1)\n bool = true\n }\n // nb2\n bool = false\n n = 0\n while (n < tabNb2.length && !bool) {\n if (nb2Dist === tabNb2[n]) { // si le diviseur premier est déjà présent on incrémente sa multiplicité\n multiplicitesNb2[n]++\n bool = true\n }\n n++\n }\n // we test the output value of bool and add the new value if necessary\n if (!bool) { // il n'is not present we'ajoute avec la multipplicité 1\n tabNb2.push(nb2Dist)\n multiplicitesNb2.push(1)\n bool = true\n }\n // we create an associative table from the two tables tab_ni and multiplicites_ni\n const tabPremMultNb1 = []\n for (let k = 0; k < tabNb1.length; k++) {\n tabPremMultNb1[k] = { prem: tabNb1[k], mult: multiplicitesNb1[k] }\n }\n const tabPremMultNb2 = []\n for (let k = 0; k < tabNb2.length; k++) {\n tabPremMultNb2[k] = { prem: tabNb2[k], mult: multiplicitesNb2[k] }\n }\n // we arrange according to first ascending\n tabPremMultNb1.sort(function (a, b) {\n return a.prem > b.prem\n })\n tabPremMultNb2.sort(function (a, b) {\n return a.prem > b.prem\n })\n // we initialize nb1 and nb2 and calculate them from the tables\n nb1 = 1\n for (let k = 0; k < tabNb1.length; k++) {\n nb1 = nb1 * tabPremMultNb1[k].prem ** tabPremMultNb1[k].mult\n }\n nb2 = 1\n for (let k = 0; k < tabNb2.length; k++) {\n nb2 = nb2 * tabPremMultNb2[k].prem ** tabPremMultNb2[k].mult\n }\n\n switch (typesDeQuestions) {\n case 1: // décomposition de A\n texte = numAlpha(0) + ` Decompose $A = ${texNombre(nb1)}$ into a product of prime factors.`\n texteCorr = numAlpha(0) + ' The prime product decomposition of $A ='\n switch (tabPremMultNb1[0].mult) {\n case 1:\n texteCorr += `${tabPremMultNb1[0].prem}`\n break\n default:\n texteCorr += `${tabPremMultNb1[0].prem}^{${tabPremMultNb1[0].mult}}`\n break\n }\n for (let k = 1; k < tabNb1.length; k++) {\n switch (tabPremMultNb1[k].mult) {\n case 1:\n texteCorr += `\\\\times${tabPremMultNb1[k].prem}`\n break\n default:\n texteCorr += `\\\\times${tabPremMultNb1[k].prem}^{${tabPremMultNb1[k].mult}}`\n break\n }\n }\n texteCorr += '$.'\n // break;\n // box 2: // decomposition of B\n texte += '<br>' + numAlpha(1) + ` Decompose $B = ${texNombre(nb2)}$ into a product of prime factors.`\n texteCorr += '<br>' + numAlpha(1) + 'The prime product decomposition of $B ='\n switch (tabPremMultNb2[0].mult) {\n case 1:\n texteCorr += `${tabPremMultNb2[0].prem}`\n break\n default:\n texteCorr += `${tabPremMultNb2[0].prem}^{${tabPremMultNb2[0].mult}}`\n break\n }\n for (let k = 1; k < tabNb2.length; k++) {\n switch (tabPremMultNb2[k].mult) {\n case 1:\n texteCorr += `\\\\times${tabPremMultNb2[k].prem}`\n break\n default:\n texteCorr += `\\\\times${tabPremMultNb2[k].prem}^{${tabPremMultNb2[k].mult}}`\n break\n }\n }\n texteCorr += '$.'\n // break;\n // box 3: // reduction of A on B\n texte += '<br>' + numAlpha(2) + ` Make the fraction $\\\\dfrac{A}{B} = \\\\dfrac{${texNombre(nb1)}}{${texNombre(nb2)}}$ irreducible`\n if (context.isHtml) {\n texte += ' using the decompositions obtained in ' + numAlpha(0) + ' and at ' + numAlpha(1, true) + '.'\n } else {\n texte += ' using questions' + numAlpha(0) + ' and ' + numAlpha(1, true) + '.'\n }\n texteCorr += '<br>' + numAlpha(2) + ` $\\\\dfrac{A}{B} = \\\\dfrac{${texNombre(nb1)}}{${texNombre(nb2)}} =`\n texteCorr += '\\\\dfrac{'\n texteCorr += '\\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[0] + '}'\n for (let k = 1; k < decompositionFacteursPremiersArray(nb1 / nb1Dist).length; k++) {\n texteCorr += '\\\\times \\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[k] + '}'\n }\n texteCorr += `\\\\times ${nb1Dist}}{`\n texteCorr += '\\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[0] + '}'\n for (let k = 1; k < decompositionFacteursPremiersArray(nb1 / nb1Dist).length; k++) {\n texteCorr += '\\\\times \\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[k] + '}'\n }\n texteCorr += `\\\\times ${nb2Dist}} =`\n texteCorr += `\\\\dfrac{${nb1Dist}}{${nb2Dist}}$`\n // break;\n // box 4: // reduction of B on A\n texte += '<br>' + numAlpha(3) + ` Make the fraction $\\\\dfrac{B}{A} = \\\\dfrac{${texNombre(nb2)}}{${texNombre(nb1)}}$ irreducible`\n if (context.isHtml) {\n texte += ' using the decompositions obtained in' + numAlpha(0) + 'and at' + numAlpha(1, true) + '.'\n } else {\n texte += ' using questions' + numAlpha(0) + ' and ' + numAlpha(1, true) + '.'\n }\n texteCorr += '<br>' + numAlpha(3) + ` $\\\\dfrac{B}{A}$ is the inverse of $\\\\dfrac{A}{B}$ so $\\\\dfrac{B}{A} = \\\\dfrac{${texNombre(nb2)}}{${texNombre(nb1)}} =`\n texteCorr += '\\\\dfrac{'\n texteCorr += '\\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[0] + '}'\n for (let k = 1; k < decompositionFacteursPremiersArray(nb1 / nb1Dist).length; k++) {\n texteCorr += '\\\\times \\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[k] + '}'\n }\n texteCorr += `\\\\times ${nb2Dist}}{`\n texteCorr += '\\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[0] + '}'\n for (let k = 1; k < decompositionFacteursPremiersArray(nb1 / nb1Dist).length; k++) {\n texteCorr += '\\\\times \\\\cancel{' + decompositionFacteursPremiersArray(nb1 / nb1Dist)[k] + '}'\n }\n texteCorr += `\\\\times ${nb1Dist}} =`\n texteCorr += `\\\\dfrac{${nb2Dist}}{${nb1Dist}}$.`\n context.isHtml ? texteCorr += '<hr>' : texteCorr += '\\\\by \\\\hrulefill \\\\by'\n texteCorr += ` We can judiciously note that $\\\\dfrac{B}{A}$ is the inverse of $\\\\dfrac{A}{B}$ so that making the fraction $\\\\dfrac{B}{A}$ irreducible amounts to to invert the irreducible fraction obtained for $\\\\dfrac{A}{B}$ to the ${numAlpha(2, true)}.`\n context.isHtml ? texteCorr += '<hr>' : texteCorr += '\\\\by \\\\hrulefill \\\\by'\n // break;\n // box 5: // calculate the product A/B x B/A and reduce. Noticed?\n // text += `<br>`+numAlpha(4)+` How much to calculate the product of $\\\\dfrac{A}{B} = \\\\dfrac{${texNombre(nb1)}}{${texNombre(nb2)}}$ and $\\\\dfrac{ B}{A} = \\\\dfrac{${texNombre(nb2)}}{${texNombre(nb1)}}$.`;\n // text += `<br>Give the result as an irreducible fraction.`\n // text += `<br>`+numAlpha(4)+` Note?`\n // textCorr += `<br>`+numAlpha(4)+' corr type 5';\n break\n }\n\n if (this.listeQuestions.indexOf(texte) === -1) { // Si la question n'a jamais été posée, on en créé une autre\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n this.besoinFormulaireCaseACocher = ['“Simple” decomposition']\n}\n"],"names":["titre","uuid","ref","FractionsIrreductibles","Exercice","context","numeroExercice","typesDeQuestions","modalPdf","listeTypeDeQuestions","combinaisonListesSansChangerOrdre","warnMessage","numAlpha","i","texte","texteCorr","cpt","nb1","nb2","candidatsPremiersCommuns","premiersEntreBornes","nbDivPremCommuns","premiersCommuns","r","rExclus","k","m","randint","multiplicitesPremiersCommuns","zeroDejaDonne","multipliciteHAsard","idx","tabNb1","tabNb2","multiplicitesNb1","multiplicitesNb2","maBorne","rEx","nb1Dist","nb2Dist","bool","n","tabPremMultNb1","tabPremMultNb2","a","b","texNombre","decompositionFacteursPremiersArray","listeQuestionsToContenu"],"mappings":"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"}