open System let factorize n = let split p n = let mutable n = n let mutable k = 0L while n % p = 0L do k <- k + 1L n <- n / p (n, k) [ let m = ref n let p = ref 2L while (! p) * (! p) <= n do let (m', k) = split (! p) (! m) if k > 0L then yield (! p, k) p := (! p) + 1L m := m' ] let solve n = factorize n |> List.choose (fun (k, v) -> if v % 2L <> 0L then Some k else None) |> List.fold (*) 1L [] let main _ = let x = Console.ReadLine() |> int64 printfn "%d" (solve x) //exit code 0