#sorry def main s = gets.chomp x = Time.now() def gcd(a,b) if b!=0 then return gcd(b, a%b) else return a end end len = s.length if len == 1 then puts s return end g = s.to_i n = g while true y = Time.now() if y-x > 0.200 then break end if g == 1 then break end for i in 0..10 do for j in 0...5 do a = rand(0...len) b = rand(0...len) u = (n % (10**(a+1)) / (10**a)) v = (n % (10**(b+1)) / (10**b)) n = n + (v-u)*(10**a) + (u-v)*(10**b) end g = gcd(g, n) end end puts g end main()