Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.79 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3.  
  4. unsigned int massimo_comun_divisore(int , int);
  5.  
  6. int main()
  7. {  
  8.     int a, b;
  9.     unsigned int mcd, mcm;
  10.     printf("Inserisci a:");
  11.     scanf("%u", &a);
  12.     printf("Inserisci b:");
  13.     scanf("%u", &b);
  14.     if (a < 0 || b < 0 || (a == 0 && b == 0)) {
  15.         printf("Valori non validi\n");
  16.         return -1;
  17.     } else {
  18.         mcd = massimo_comun_divisore(a, b);
  19.         mcm = a*b/mcd;
  20.         printf("MCD = %u, mcm = %u\n", mcd, mcm);
  21.     }
  22.     return 0;
  23. }
  24.  
  25. int calcola_massimo(int x, int y)
  26. {
  27.     return (x > y) ? x : y;
  28. }
  29.  
  30. unsigned int massimo_comun_divisore(int a, int b)
  31. {  
  32.     unsigned int mcd;
  33.     int c = calcola_massimo(a, b);
  34.     int d = - calcola_massimo(-a, -b);
  35.     if (d == 0) {
  36.         mcd = c;
  37.     } else {
  38.         int q = c/d;
  39.         int r = c%d;
  40.         c = d;
  41.         d = r;
  42.         mcd = massimo_comun_divisore(c, d);
  43.     }
  44.     return mcd;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement