Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def euclidMCD(A: int, B: int) -> int:
- """
- Requiere A, B en N.
- Devuelve el MCD entre A y B, aplicando el algoritmo de Euclides.
- """
- r = A%B
- if r: return euclidMCD(B, r)
- return abs(B)
- def MCD(fnA, fnB, pA: list, pB: list) -> int:
- return euclidMCD(fnA(*pA), fnB(*pB))
- if __name__ == '__main__':
- ej = 5.9
- m = 10000
- if ej == 5.8: A, B = lambda n : 2*n-3, lambda n : 4*n**2+10*n-10
- if ej == 5.9: A, B = lambda n : 5*n+8, lambda n : 7*n+3
- MCDs = [(n, MCD(A, B, [n], [n])) for n in range(m)]
- print(MCDs)
- print(set([MCD[1] for MCD in MCDs]))
- if ej == 5.8: print(all([MCDs[i][1] == 7 for i in range(m-1) if (MCDs[i][0]-5)%7==0]),
- all([MCDs[i][1] == 1 for i in range(m-1) if (MCDs[i][0]-5)%7!=0]))
- if ej == 5.9: print(all([MCDs[i][1] == 41 for i in range(m-1) if (MCDs[i][0]-23)%41==0]),
- 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