Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Algorithmes pour trouver les facteurs premiers

Posté par
vanyle
12-02-15 à 17:03

Bonjour

Voici l'énoncé de l'exercice sur lequel je bloque :

A. Un premier algorithme

Saisir N
D prend la valeur 2
F prend la valeur []
Tant que n<1 faire
  Si D est un diviseur de N, ajouter D à la liste F
     N prend la valeur N/D
  Sinon D prend la valeur D+1
  Fin Si
Fin Tant que
Afficher la liste F

1) Appliquer à la main l'algorithme ci-contre à l'entier N=1400. Quelle est la liste affichée ?
2) Justifier que la liste F procure la décomposition en facteurs premiers de N.

B. Des améliorations successives
1) Les diviseurs premiers de N peuvent être 2 ou des entiers premiers impairs. Modifier l'algorithme précédent pour traiter le cas du diviseur 2 éventuel puis les autres diviseurs premiers possibles allant de 2 en 2.
2) On sait qu'il suffit de tester les diviseurs inférieurs ou égaux à E(√ N) pour tester si un entier A est premier. Modifier l'algorithme pour réduire le nombre de divisions à effectuer.
3) On sait que les diviseurs premiers de N peuvent être 2, 3 ou sont des entiers premiers supérieurs ou égaux à 5, de la forme 6k-1 ou 6k+1 pour k entier naturel, k>0. Modifier l'algorithme pour chercher les facteurs premiers 2 et 3 éventuels puis les autres facteurs premiers.


J'ai réussi à faire la partie A, mais je bloque à la partie B :
Question 1 : mon algorithme ne marche pas (calculatrice TI 83)

Prompt N
0→K
2→D
EffListe L1
0→I
While N>1
If N/D = partEnt(N/D)
I+1→I
D→L1(I)
Else
K+1→K
2K+1→D
End
End
Disp L1

Question 3 : Je ne vois pas quoi modifier


Merci de votre aide !

Posté par
carpediem
re : Algorithmes pour trouver les facteurs premiers 12-02-15 à 17:17

salut

je ne vois pas à quoi sert la variable k




Lire n
i = 0
Pour d = 2 Jusqu'à 3
    Tant que n/d = E(n/d)
        L(i) = d
        i = i + 1
Tant que d =< n
    Tant que n/d = E(n/d)
        L(i) = d
        i = i + 1
    d = d + 2

voila pour l'essentiel du programme ...

à toi de faire ce qu'il faut pour répondre à la partie B

Posté par
vanyle
d'autres aides ? 12-02-15 à 18:12

Merci mais je suis encore bloquée..
Je ne sais pas comment écrire mon programme

La variable K me sert pour répondre à la question B 1), puisqu'il faut traiter le cas du diviseur 2 puis les autres diviseurs premiers possibles allant de 2 en 2 d'où " 2K+1→D "

Posté par
carpediem
re : Algorithmes pour trouver les facteurs premiers 12-02-15 à 18:18

ok ..

ouais enfin à partir de d = 3 tu peux toujours faire d = d + 2 ...


sinon pour les programmes il y a des mode d'emploi sur le site des fabricants ...

Posté par
vanyle
question B. 1) 12-02-15 à 18:55

J'ai trouvé mes erreurs et mon algorithme fonctionne ! :

Prompt N
0→K
2→D
EffListe L1
0→I
While N>1
If N/D = partEnt(N/D)
Then
I+1→I
D→L1(I)
N/D→N
Else
K+1→K
2K+1→D
End
End
Disp L1

Posté par
carpediem
re : Algorithmes pour trouver les facteurs premiers 12-02-15 à 19:19

tant mieux ... moi aussi j'ai fait des oublis importants en fait ...



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 1742 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 !