Inscription / Connexion Nouveau Sujet
Niveau Maths sup
Partager :

Algorithmie - Décomposition en facteurs premiers

Posté par
mathsup2
04-11-17 à 14:25

Bonjour,
Je dois réaliser un algorithme sur la décomposition d'un nombre n en facteurs premiers. Cependant, cet algorithme doit être rédigé en langage naturel et la consigne précise également de continuer l'algorithme pour affiche son nombre exact de diviseurs, son logarithme népérien...
Je vous joins ici la consigne :
Ecrire un algorithme en langage naturel permettant, après avoir saisi un entier naturel n non nul d'afficher sa décomposition en facteurs premiers, son nom de diviseurs. Préciser si le nombre n est premier et dans ce dernier cas, arrêter le programme. Modifier l'algorithme précédent pour qu'il affiche, en plus, la racine carrée du nombre n. Préciser si le nombre est un carré parfait. Modifier l'algorithme précédent pour qu'il affiche, en plus, le logarithme népérien du nombre n.

J'ai un véritable problème avec la rédaction en langage naturel et la seconde partie de l'exercice. J'ai déjà créé sur ma calculette TI l'algorithme pour le nombre de diviseurs mais je n'y arrive pas pour sa décomposition en facteurs premiers. Si jamais l'un de vous a une piste vers laquelle je peux me diriger pour résoudre cette question, cela pourrait véritablement m'aider!

Merci d'avance et bonne journée!

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 17:26

Bonjour ,

exemple codé en python mais facilement transposable en langage naturel je pense .

def factorisation (N) :
    if (N>1) :
      for i in range (2,N) :
           while (N % i == 0) :
                print (i)
                N = N / i


Cordialement


        

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 17:48

Ou en algobox

VARIABLES

N EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE

DEBUT_ALGORITHME

LIRE N
SI (N>1) ALORS
DEBUT_SI
    POUR i ALLANT_DE 2 A N
DEBUT_POUR
   TANT_QUE (N%i ==0) FAIRE
   DEBUT_TANT_QUE   
  AFFICHER* i
  N PREND_LA_VALEUR N / i
   FIN_TANT_QUE
FIN_POUR
FIN_SI

FIN_ALGORITHME

Posté par
mathsup2
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 18:35

Bonsoir,
Merci de vos réponses, j'ai pu résoudre les deux premières parties de la question sur le sujet de décomposition en facteurs premiers, le nombre de diviseurs et la primalité ainsi que la racine carrée!
Cependant, je bloque sur l'algorithme pour le logarithme népérien puisqu'il faut qu'il soit écrit selon le modèle suivant :
ex : ln(360)=3ln(2)+2ln(3)+ln(5)
Et mon algorithme ne permet de l'afficher qu'en sa valeur approchée...

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 18:44

Si on te suggère comment calculer  ln (N)  (en factorisant N)  , il te suffit de modifier le programme de factorisation pour que pour chaque facteur il calcule le log correspondant afin de l'ajouter au résultat préalablement initialisé à 0 .
De toute façon , le calcul d'un log ne peut donner qu'un résultat approché .

Posté par
mathsup2
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 19:09

J'avais rédigé ceci pour l'algorithme sur ln :

Saisir n (réel supérieur à 1)
Pour k allant de 1 à x faire
Affecter "\/n" à n
Fin Pour
Affecter n - 1 à n
Pour k allant de 1 à x Faire
Affecter 2*n à n
Fin Pour
Afficher n

(J'ai remplacé racine carrée par ce signe \/ ).

Pensez-vous que cela est correct? Pourrais-je faire mieux?

Posté par
verdurin
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 19:17

Bonsoir,
en principe ton algorithme de factorisation te donne une liste dont les éléments sont de la forme ( p ; exposant de p=kp ). Où p est un nombre premier.

Ensuite ln(N)=(kp ln(p))

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 21:03

Citation :
J'avais rédigé ceci pour l'algorithme sur ln :  ...  


J'ai vu pire mais jamais aussi  fantaisiste comme algorithme .

Posté par
verdurin
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 21:38

@fm_31.
Pour ton algorithme, j'ai également vu pire.
Mais pas souvent.

Il fait d'abord donner un algorithme de décomposition en facteurs premiers qui retourne effectivement la décomposition en facteurs premiers sous une forme utilisable.

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 04-11-17 à 21:44

Citation :
Il fait d'abord donner un algorithme de décomposition en facteurs premiers qui retourne effectivement la décomposition en facteurs premiers sous une forme utilisable.

C'est pas très clair dans l'énoncé et vu les difficultés de  mathsup2 ...

Posté par
fm_31
re : Algorithmie - Décomposition en facteurs premiers 05-11-17 à 09:35

Exemple plus lisible (codé python)

Algorithmie - Décomposition en facteurs premiers

Algorithmie - Décomposition en facteurs premiers

Posté par
alb12
re : Algorithmie - Décomposition en facteurs premiers 05-11-17 à 10:44

salut,
utiliser les balises <\> pour les codes

Posté par
carpediem
re : Algorithmie - Décomposition en facteurs premiers 05-11-17 à 11:25

salut

perso avec mes élèves de spé j'ai proposé la même chose (pas cette année mais ça va venir)

après un travail préparatoire où on montre que tout nombre premier autre que 2 et 3 s'écrit p = 6k \pm 1

j'ai demandé un algo donnant la décomposition n = \prod p_i^{a_i}

ici et vu les questions suivantes je construirai deux listes premier [i] et exposant [i] telles que :

premier [p] = p si p divise n         (sinon = 1)
exposant [p] = a_i                              (sinon = 0)

et alors test sur 2 et 3 puis boucle

on remarquera que par exemple pour p = 35 = 6 * 6 - 1 ça marche puisque 5 et 7 auront déjà été traités auparavant ...

répondre aux autres questions est alors élémentaire


se fait assez aisément avec (ces (langage de ) merde de) calculatrices TI et Casio ...



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1730 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !