Comment vérifier si un nombre est de la forme 3 puissance N
2 participants
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Comment vérifier si un nombre est de la forme 3 puissance N
Bonjour à tous,
Je me suis planté dans la résolution d'un exercice qui peut compter comme Contrôle Continu. L'énoncé est le suivant:
Ecrire un module (programme ou sous-programme) PASACL qui permet de tester si un nombre peut se mettre sous forme de 3^N (càd 3 puissance N)... par exemple: 243 = 3^5, 27 = 3^3 etc...
merci d'avance.
informiX.
Je me suis planté dans la résolution d'un exercice qui peut compter comme Contrôle Continu. L'énoncé est le suivant:
Ecrire un module (programme ou sous-programme) PASACL qui permet de tester si un nombre peut se mettre sous forme de 3^N (càd 3 puissance N)... par exemple: 243 = 3^5, 27 = 3^3 etc...
merci d'avance.
informiX.
informix- Nombre Rationnel
- Nombre de messages : 399
Réputation : 4
Points : 6526
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
indication n°1 (X est-il de la forme 3^N)
Salut,
C'est un bon exercice pour mieux maitriser la structure REPEAT...UNTIL...
L'idée est de diviser successivement le nombre X par 3, jusqu'à ce que le dividende soit égal à 1 ou bien que le reste (mod) soit différent de 0.
Exemple n°1
243 div 3 = 81 et 243 mod 3 = 0
81 div 3 = 27 et 81 mod 3 = 0
27 div 3 = 9 et 27 mod 3 = 0
9 div 3 = 3 et 9 mod 3 = 0
3 div 3 = 1 et 3 mod 3 = 0 donc STOP
Exemple n°2
40 / 3 = 13 et 40 mod 3 = 1, donc STOP
A vous de profiter de cette indication. Si vous trouvez encore des difficultés, on vous donnera la solution.
B.Nabil
C'est un bon exercice pour mieux maitriser la structure REPEAT...UNTIL...
L'idée est de diviser successivement le nombre X par 3, jusqu'à ce que le dividende soit égal à 1 ou bien que le reste (mod) soit différent de 0.
Exemple n°1
243 div 3 = 81 et 243 mod 3 = 0
81 div 3 = 27 et 81 mod 3 = 0
27 div 3 = 9 et 27 mod 3 = 0
9 div 3 = 3 et 9 mod 3 = 0
3 div 3 = 1 et 3 mod 3 = 0 donc STOP
Exemple n°2
40 / 3 = 13 et 40 mod 3 = 1, donc STOP
A vous de profiter de cette indication. Si vous trouvez encore des difficultés, on vous donnera la solution.
B.Nabil
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Essai...
Salut,
J'ai essayé le code suivant:
begin
write('X = ');
read(X);
Repeat
Y := X div 3;
Until (Y = 1 OR Y mod 3<>0);
if (Y = 1) then
write(X,' sous forme 3^N')
else
write(X,' n''est pas de la forme 3^N');
end.
mais ça plante le PC
informiX
J'ai essayé le code suivant:
begin
write('X = ');
read(X);
Repeat
Y := X div 3;
Until (Y = 1 OR Y mod 3<>0);
if (Y = 1) then
write(X,' sous forme 3^N')
else
write(X,' n''est pas de la forme 3^N');
end.
mais ça plante le PC
informiX
informix- Nombre Rationnel
- Nombre de messages : 399
Réputation : 4
Points : 6526
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Comment vérifier si un nombre est de la forme 3 puissance N
informix a écrit:Bonjour à tous,
Je me suis planté dans la résolution d'un exercice qui peut compter comme Contrôle Continu. L'énoncé est le suivant:
Ecrire un module (programme ou sous-programme) PASACL qui permet de tester si un nombre peut se mettre sous forme de 3^N (càd 3 puissance N)... par exemple: 243 = 3^5, 27 = 3^3 etc...
merci d'avance.
informiX.
Salut,
Une réponse possible au problème est la suivante:
B.Nabil a écrit:
USES wincrt;
VAR X,dividende,reste: integer;
BEGIN
Write('X = '); Readln(X);
dividende:=X;
REPEAT
reste := dividende mod 3;
dividende := dividende div 3;
UNTIL ((dividende=1) or (reste<>0));
IF (dividende = 1) then write('VRAI') else write('FAUX');
END.
Je vous propose une extension plus difficile du problème posé par informix, à vous de résoudre:
B.Nabil a écrit:
Ecrire un nombre X sous forme de produits de nombres premiers:
Exemple: 60 = 2x2x3x5 = 2^2 x 3 x 5, ou aussi 3072 = 2^10 x 3
B.Nabil
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Sujets similaires
» Propriété d'un nombre de la forme NN
» Nombre de Décompositions d'un nombre
» Vérifier si X est entier ou float
» Exercice (bac pratique): Somme des chiffres est formé d'un seul chiffre?
» Le nombre UN (1)
» Nombre de Décompositions d'un nombre
» Vérifier si X est entier ou float
» Exercice (bac pratique): Somme des chiffres est formé d'un seul chiffre?
» Le nombre UN (1)
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum