import sys sys.setrecursionlimit(10 ** 6) def II(): return int(sys.stdin.readline()) def PrimeFactorization(x): def plist(x): if x < 2: return [] if x & 1 == 0: return [2] + plist(x // 2) for p in range(3, x + 1, 2): if x % p == 0: return [p] + plist(x // p) if p ** 2 > x: return [x] pl = plist(x) pp, ee = [], [] for p in pl: if not pp or p != pp[-1]: pp += [p] ee += [0] ee[-1] += 1 return [(p, e) for p, e in zip(pp, ee)] def main(): x=II() pe=PrimeFactorization(x) ans=1 for p,e in pe: if e%2:ans*=p print(ans) main()