Bonjour, je suis actuellement en, classe de 1ère S et un exercice de mon DM de Math me pose quelques difficultés. En effet, l'énoncé est : " Déterminer un algorithme qui donne en sortie sous forme de liste les valuations p-adiques d'un entier naturel n pour les 10 premiers nombres premiers".
Je me pose donc quelques questions, je ne sais pas si l'idéal est de calculer le premiers nombres premiers et ensuite appliquer un algo permettant de calculer les valuations, ou si je dois entrer les valeurs des premiers nombres premiers et appliquer les valuations.
De plus, je ne sais pas comment je peux créer une liste.
Merci de votre aide.
Pour moi, c'est le nombre de fois ou il y a 5 dans 1000. Soit 1000/5 =200.
Donc pour moi la valuation 5-adique de 1000 est égalé a 200.
Justement sur le net, il y a très peu d'informations concernant cela, ou alors celles ci sont hors de porté pour mon niveau
decompose 1000 en facteurs premiers
cherche le plus grand entier k tel que 5^k divise 1000
ce nombre k est la valuation 5-adique de 1000
J'ai réussi a créé un algorithme mais celui-ci contient 10 boucles tant que pour les 10 nombres premiers, de plus l'utilisateur est obligé d'entrer les valeurs des 10 premiers nombres premiers. J'aimerai trouver une méthode qui puisse raccourcir et alléger mon algorithme.
Merci de votre aide.
il faut creer la liste des 10 premiers nombres premiers
puis avec une boucle "pour" passer tous les elements de la liste dans le tant que
Quel langage utilises-tu ?
Un pseudo-code possible:
Entrée
entier n
Variables
liste P,tableau tab,entier j,entier k
Initialisation
tab tableau vide
P liste des 10 nombres premiers
Traitement
pour j de 0 jusque 9 faire
k:=0
tant que le reste de la division de n par P[j]^k est nul faire
k:=k+1
fin du tant que
ajouter au tableau tab la ligne P[j],k-1
fin du pour
Sortie
tab
Je n'y parviens pas, l'utilisateur est obligé d'entrer les valeurs des 10 nombres premiers et je n'arrive pas a les programmer, mon algorithme est composé comme ceci:
Variables:
N est du type nombre
L " " " liste
z " " " Nombre
Les lettres de a à j du type nombre
Début algo
Lire n
Pour z allant de 1 à 20
Début pour
Lire L[z]
Fin pour
Tant que (n% L[1]==0)
Début tant que
n prend la valeur n/ L[1]
a prend le valeur a+1
Fin tant que
J'effectue ceci pour toutes les lettres jusqu'à j seul les numéro L[?] changé sur ce système L[2], L [3]...
A la fin j'affiche toutes les lettres de a jusqu'à j
J'aimerai l'amélioré
il faut creer la liste des 10 premiers nombres premiers
lu dans une doc:
Pour remplir directement une liste, il faut indiquer dans le champ rang du terme de la liste le rang du premier terme de la liste et séparer ensuite les valeurs par le caractère : dans le champ prend la valeur. (on obtient alors une instruction du style maliste[1] prend la valeur 1:2:3:4 )
D'accord merci beaucoup et donc est ce que pour chaque tant que je devrais mettre L[1] puis L[2] puis L [3] par exemple ou seulement L [1] partout ?
Merci de votre aide
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :