#! ruby # yukicoder My Practice # author: Leonardone @ NEETSDKASU x = gets.to_i def f (x, k) x end loop { d, m = x.divmod 4; break if m != 0; x = d; }; 3.step(x ** 0.5, 2) do |k| kk = k * k break if x < kk loop { d, m = x.divmod kk; break if m != 0; x = d; }; end puts x