mfgnik

Untitled

Jun 8th, 2020
1,091
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.68 KB | None | 0 0
  1. def find_radical(n):
  2.     p = []
  3.     d = 2
  4.     rad = 1
  5.     while d * d <= n:
  6.         cnt = 0
  7.         while n % d == 0:
  8.             cnt += 1
  9.             n //= d
  10.         if cnt != 0:
  11.             rad *= d
  12.         d += 1
  13.     if n > 1:
  14.         rad *= n
  15.     return rad
  16.  
  17.  
  18. def pow(number, degree, modulo):
  19.     if degree == 0:
  20.         return 1
  21.     elif degree % 2:
  22.         return pow(number, degree - 1, modulo) * number % modulo
  23.     return pow(number * number % modulo, degree // 2, modulo) % modulo
  24.  
  25.  
  26. number = int(input())
  27. radical = find_radical(number)
  28. for i in range(1, 30):
  29.     x = i * radical
  30.     if pow(x, x, number) == 0:
  31.         print(i * radical)
  32.         break
Advertisement
Add Comment
Please, Sign In to add comment