#lang racket
(for ([n (in-port)])
(displayln (if (exact? root)
(* root 2)
(for/first
([div (range
(exact
-floor root
) 0 -1)] #:when (= 0 (remainder n div)))
I2xhbmcgcmFja2V0CgooZm9yIChbbiAoaW4tcG9ydCldKQogIChsZXQgKFtyb290IChzcXJ0IG4pXSkKICAgIChkaXNwbGF5bG4gKGlmIChleGFjdD8gcm9vdCkKICAgICAgICAgICAgICAgICAgICgqIHJvb3QgMikKICAgICAgICAgICAgICAgICAgIChmb3IvZmlyc3QgKFtkaXYgKHJhbmdlIChleGFjdC1mbG9vciByb290KSAwIC0xKV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICM6d2hlbiAoPSAwIChyZW1haW5kZXIgbiBkaXYpKSkKICAgICAgICAgICAgICAgICAgICAgKCsgZGl2IChxdW90aWVudCBuIGRpdikpKSkpKSk=