Advertisement
Toumo

mcd_expresiones_parametrizadas.py

Oct 19th, 2022 (edited)
1,322
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.96 KB | Source Code | 0 0
  1. def euclidMCD(A: int, B: int) -> int:
  2.     """
  3.    Requiere A, B en N.
  4.    Devuelve el MCD entre A y B, aplicando el algoritmo de Euclides.
  5.    """
  6.     r = A%B
  7.     if r: return euclidMCD(B, r)
  8.     return abs(B)
  9.  
  10. def MCD(fnA, fnB, pA: list, pB: list) -> int:
  11.     return euclidMCD(fnA(*pA), fnB(*pB))
  12.  
  13. if __name__ == '__main__':
  14.     ej = 5.9
  15.     m = 10000
  16.     if ej == 5.8: A, B = lambda n : 2*n-3, lambda n : 4*n**2+10*n-10
  17.     if ej == 5.9: A, B = lambda n : 5*n+8, lambda n : 7*n+3
  18.     MCDs = [(n, MCD(A, B, [n], [n])) for n in range(m)]
  19.     print(MCDs)
  20.     print(set([MCD[1] for MCD in MCDs]))
  21.     if ej == 5.8: print(all([MCDs[i][1] == 7 for i in range(m-1) if (MCDs[i][0]-5)%7==0]),
  22.                         all([MCDs[i][1] == 1 for i in range(m-1) if (MCDs[i][0]-5)%7!=0]))
  23.     if ej == 5.9: print(all([MCDs[i][1] == 41 for i in range(m-1) if (MCDs[i][0]-23)%41==0]),
  24.                         all([MCDs[i][1] == 1 for i in range(m-1) if (MCDs[i][0]-23)%41!=0]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement