MatteB_01

tentativo di fattorizzazione con kphi

Dec 2nd, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.16 KB | None | 0 0
  1.  
  2. import math
  3.  
  4. n = int(input("inserisci n: "))
  5. phiUno = int(input("primo phi: "))
  6. phiDue = int(input("secondo phi: "))
  7. phiTre = int(input("terzo phi: "))
  8. phiQuattro = int(input("quarto phi: "))
  9. phiCinque = int(input("quinto phi: "))
  10.  
  11.  
  12. def coprime(a, b):
  13.     return math.gcd(a, b) == 1
  14.  
  15.  
  16. #-----------------TROVA UN COPRIMO DI N------------------------
  17.  
  18. #trova il più piccolo coprimo di n
  19. for x in range(3, n):
  20.  
  21.     if coprime(n , x) == True:
  22.         a = x
  23.         break
  24.  
  25.  
  26. #-----------------TENTATIVO DI FATTORIZAZIONE CON IL PRIMO NUMERO-------------------------
  27.  
  28. #questo ciclo prova le t
  29. for  k in range(3, phiUno , 2):
  30.     #questo ciclo prova le k
  31.     for j in range (1, phiUno):
  32.  
  33.         if pow(2 , j) * k == phiUno:
  34.             t = k
  35.             s = j
  36.  
  37.             for i in range (1, s+1):
  38.  
  39.  
  40.                 condOne = pow(a , pow(2, i - 1) * t , n)
  41.                 condTwo = pow(a , pow (2 , i) * t , n)
  42.  
  43.                 if condOne != 1 and condOne  != n - 1 and condTwo  == 1:
  44.                     print(math.gcd(pow( a , pow(2 , i - 1) * t , n )))
  45.                     break
  46.                 else:
  47.                     print("Niente")
  48.  
  49.  
  50.  
  51.  
Advertisement
Add Comment
Please, Sign In to add comment