PDA

Visualizza la versione completa : [ALGORITMO]Massimo Comun Divisore tra 2 numeri


DiegoFilippo
01-04-2012, 09:36
Devo calcolare tramiote Pseduo-Codifica il MCD tra 2 numeri presi in input. ho penmsato così :



INIZIO
MCD = 0;
M' = 0;
LEGGI M;
LEGGI N;
FINCHE M == 0 ESEGUI
INIZIO
SE M < N ALLORA
M' = N;
N = M;
M = M';
M = M - N;
MCD = N;
ALTRIMENTI
M = M - N;
MCD = N;
FINE
OUTPUT MCD;
FINE


potrebbe funzionare?

userazzo
01-04-2012, 11:03
Forse così è ancora più pulita:


FUNCTION MCD(N1, N2)
INIZIO
FINCHE N1 != N2 ESEGUI
INIZIO
SE N2 > N1 ALLORA
N2 = N2 - N1;
ALTRIMENTI
N1 = N1 - N2;
FINE
OUTPUT N1;
FINE

Presa da quì (http://www.liceofoscarini.it/didattic/data-base/php/php_esempio_mcd.phtml).

oregon
01-04-2012, 11:26
Originariamente inviato da userazzo
Forse così è ancora più pulita:

Concordo ... anche perché

FINCHE M == 0 ESEGUI

non mi convinceva proprio ...


P.S. Bentornato ...

DiegoFilippo
01-04-2012, 13:38
ma != non significa "diverso"?

quindi se metto n1 = 10 e n2 = 50 n1 != n2

oregon
01-04-2012, 13:40
E quindi ?

DiegoFilippo
01-04-2012, 13:44
è giusto? cioè ora tra 10 e 50 il MCD è 10, quindi n1. ma se io metto n1 = 103653106847 e n2 = 120989497654219879 n1 != n2 ma n1 non è il MCD

oregon
01-04-2012, 13:48
Ma c'è un programma da eseguire ... perché dai subito il risultato?

Rising1
01-04-2012, 15:58
oppure te ne freghi altamente e fai


Leggi N e M
se N<M min=N altrimenti min=M
per tutti i valori di "i" da 1 a "min":
inizio
se (N modulo i=0) e (M modulo i=0) valorecercato=i
fine
OUTPUT valorecercato
ma è poco pulito

Loading