Skylighty

algorytmy

Oct 20th, 2020
764
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Algorytm Euklidesowy
  2. def euclides(x,y):
  3.     temp = 0
  4.     rest1 = 0
  5.     rest2 = 0
  6.     if x > y:
  7.         rest1 = x % y
  8.         rest2 = y
  9.     elif x == y:
  10.         return x
  11.     else:
  12.         rest1 = y % x
  13.         rest2 = x
  14.     while True:
  15.         if rest1 > rest2:
  16.             rest1 %= rest2
  17.         else:
  18.             rest2 %= rest1
  19.         if rest1 == 0:
  20.             return rest2
  21.         elif rest2 == 0:
  22.             return rest1
  23.  
  24.  
  25.  
  26. # Rozklad na czynniki pierwsze
  27. # Zwraca w liscie, od gory
  28. def distribution(x):
  29.     ite = 2
  30.     dividers = []
  31.     while x > 1:
  32.         if x % ite == 0:
  33.             x /= ite
  34.             dividers.append(ite)
  35.             ite = 2
  36.         else:
  37.             ite += 1
  38.     return dividers
  39.  
  40.  
  41. # Strukturyzja do postaci slownika klucz-wartosc
  42. # Gdzie klucz to podstawa, a wartosc wykladnik (ilosc wystapien poszczegolnego dzielnika w rozkladzie)
  43. def structurize_divs(divers):
  44.     result = {}
  45.     for i in divers:
  46.         result[i] = divers.count(i)
  47.     return result
  48.  
  49.  
  50. # Funkcja Eulera (nie twierdzenie)
  51. def euler(data):
  52.     result = 1
  53.     for base in data:
  54.         result *= pow(base, data[base]-1)*(base-1)
  55.     return result
RAW Paste Data