تسجيل الدخول

مشاهدة النسخة كاملة : exo d`algorithimique


fifi tery
2015-11-27, 18:47
bonjour tous le monde svp aidez moi a trouver a solution de cette exo puisque j pqs compris c urgent :sdf:

ecrire un algorithme qui detremine les nombre premiers ert le nombre max des diviseurs des entiers de la forme (qui s`ecrivvent de la maniere suivante)abcabc ou a,b,c sont des chiffres entre 0 et 9 avec a strictement positif
ex;136136



c a lecon des ap actions parametres
1 annee mi
merci

*ذُكاءْ*
2015-11-30, 21:18
السلام عليكم.
Algorithme PreNd;
VAR NDP, I, A, V, D: entier;
Fonction ND (E/X: entier):entier;
Var I,D: entier;
Début
D<--2;
Pour I de 2 à xdiv2
Faire
Si x mod I=0 alors D<--D+1;
Finsi;
Fait;
ND<--D;
Fait;

Début
NDP<--2;
V<--0;
Pour I de 100 à 999
Faire
A<--(I*1000)+I;
D<--ND(A);
Si D=2 alors écrire (A'est premier')
Sinon écrire (Le nombre max des diviseurs de',V,'est',NDP);
FIN.
هل حاولت على الأقل؟ إن فعلت أخبريني لأشرحه لكِ

fifi tery
2015-12-02, 20:15
j`ai essayer mais j`arrive meme pas a commencer
pour votre solution j`ai pas copmris comment je doit raisonner
merci beacoup

اميرة قلبي
2015-12-04, 14:05
J'ai pas compris l'exo , et la réponse , est ce que vous pouvez m'aider ?

*ذُكاءْ*
2015-12-04, 18:50
La fonction ND calcule le nombre des diviseurs d'un entier X.
Lorsqu'on fait appel à ND(20) elle doit nous rendre 6.
Comment calculer le nbr des diviseur? C'est en vérifiant si ce nombre là est divisible par 1 par 2 , 3,4,... Jusqu'à nbr. Mais on sait au préalable qu'un entier quelconque est divisible par 1 et lui même, donc on initialise D à 2. D'autre côté il n'existe aucun diviseur de ce nbr entre le quotient et notre nbr. Par ex 33 n'admet aucun diviseur entre 15 et 33. C'est pour ça qu'on a fait varier le cpt de 2 à x div 2. Maintenant pour chaque itération on vérifie si le reste de la division de notre nbr par I vaut 0 (si x mod I=0) alors on a trouvé un diviseur et on ajoute 1 à D.

On cherche le nbr des diviseurs des entiers de la forme abcabc (a,b et c varient de 0 à 9) et a>0 i.e 100100,101101,102102,103103,...,199199,200200,2012 01,...,999999.
On remarque que:
pour aller d'un élément à l'autre on ajoute 1001 et chaque nbr on peut l'écrire sous la forme mille I plus I
339339 c'est 339000+339 il suffit de varier i de 100 (le premier nbr va être 100100) à 999 (cela va nous donner 999999)
Pour i égal à 100
A va être 100100 (car A reçoit 1000 I+I) puis on calcule D le nbr des diviseurs de A: on fait appel à la fonction ND précédente. Maintenant on teste D si D=2( le nbr et 1) A est premier (et on affiche ce message). Sinon on le((D ))garde dans NDP et lorsqu'on calcul le D suivant ( dans la prochaine itération) on les compare. ( le but c'est déterminer le nbr qui admet le plus grand diviseur et on affiche le nbr et le nbr de ces diviseurs c'est pour ça qu'à chaque fois on trouve un nbr de diviseur plus grand on garde le D dans NDP et A dans V et on teste les A suivant jusquà la 999 ème itération et on quitte la boucle)

**خليصة **
2015-12-06, 21:49
...............................................