qui peux m'idee a faire cette algorithme

tunisiano216

عضو
إنضم
12 أكتوبر 2009
المشاركات
128
مستوى التفاعل
48
un algorithme qui affiche les nembres amis entre 50et150

merci d'avance
 

7amma_g

صديق المنتدى
إنضم
10 ماي 2008
المشاركات
1.904
مستوى التفاعل
4.635
Idée :
Vous devez faire 2 boucles imbriqués (pour boucler sur toutes les possibilités) entre 50 et 150
Soient i et j les indices de ces boucles,
Vous devez ensuite testez si i et j sont amis ou pas,

et si c'est le cas, les afficher!
 

nidou01

عضو جديد
إنضم
12 أكتوبر 2009
المشاركات
16
مستوى التفاعل
8
:besmellah1:
je l'ai trouvé sur le net :)
:dance:
Algorithme d'affichage des nombres amis inférieurs à un N donné

/* Les nombres amis inférieurs à N sont affichés directement */


j <== 0

Répéter pour​
i allant de 2 à N
somme1 <== somme des diviseurs de i
somme2 <== somme des diviseurs de somme1


/* pas parfait mais amis */

si​
i <> somme1 et i=somme2​
alors​
Ecrire (somme1 et i sont amis) s

fin_de_répéter



http://pages.upf.pf/Patrick.Capolsini/td_c/algos/amis_parfaits.htm
 

7amma_g

صديق المنتدى
إنضم
10 ماي 2008
المشاركات
1.904
مستوى التفاعل
4.635
Voilà ici un algorithme qui teste si deux nobmres dont amis,
Il vous reste dont à l'adapter pour qu'il fasse la recherche pour tous les nombres compris entre min et max (il suffit en fait d'enlever la procédure de lecture et de mettre deux boucles :

Algorithme de test de nombres amis
 

nokia200

عضو فعال
إنضم
6 فيفري 2008
المشاركات
435
مستوى التفاعل
415
un algorithme qui affiche les nembres amis entre 50et150

merci d'avance



Algo:
remarque à toi d'écrire les fonctions suivantes:

définir une fonction diviseurs: cherche l'ensemble des
diviseurs d'un entier.
définir une fonction somme
diviseurs : sommer les diviseurs.
définir une fonction afficher: affiche deux entiers et une chaine de caractères.


puis deux solutions:

:tunis:
1- parcourt simple


élément par élément: deux boucles imbriquées
condition d'affichage du résultat: si(
sommediviseurs(sommediviseurs(a))=b et sommediviseurs(sommediviseurs(b))=a) tel que a et b sont les deux compteurs des deux boucles imbriquées de 50-->150


a=b=50
tantque(b<=150)
{
tantque(a<150)
{
si(somme
diviseurs(diviseurs(a))=b et sommediviseurs(diviseurs(b))=a) alors afficher(a,b+"sont amis")
finsi
a=a+1
**
fin tantque
b=b+1
**
fin tantque

"possibilité d'affichage multiple du même couple!!!"
ou bien
:tunis:

2-Solution optimisée


a1=50
b=150
tantque (b>50 et b>a1)
{
a1=a1+1
a=a1
tantque(a<150 et a<b)
{
si(somme
diviseurs(diviseurs(a))=b et sommediviseurs(diviseurs(b))=a) alors afficher(a,b+"sont amis")
finsi
a=a+1
**
fin tantque
b=b-1
**
fin tantque

:wlcm:

cette solution est basée sur l'hypothèse que

nombres amis a et b tel que:

sommediviseurs(a)=b et sommediviseurs(b)=a.



----------------------------------------------------------
Do Hate Me
Till I Die
MeTheGhost
----------------------------------------------------------
 

tunisiano216

عضو
إنضم
12 أكتوبر 2009
المشاركات
128
مستوى التفاعل
48
voiiila la resolution de l'exercice


#include<stdio.h>
main()
{int i=0,j=0,k=0,x1=0,x2=0,x3=0,s1=0,s2=0;

for(i=50;i<150;i++)
{x1=0;x2=0;x3=0;
x1=i%10;
if(i/10<9)
x2=i/10;
else
{x2=i/10%10;
x3=i/100;
**
s1=x1+x2+x3;

for(j=50;j<150;j++)
{x1=0;x2=0;x3=0;
x1=j%10;

if(j/10<9)
x2=j/10;
else
{x2=j/10%10;
x3=j/100;**
s2=x1+x2+x3;

if(s1==s2&&i!=j)
{k++;

printf("%ld et %ld sont amis\n ",i,j);
**
**
**


printf("%ld est le nombre amis\n",k);
getch();
**
 
أعلى