using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace yuki414 { class Program { static void Main(string[] args) { long m = long.Parse(Console.ReadLine()); if (m % 2 == 0) { Console.WriteLine(2+" "+m/2); } else { int n = (int)Math.Sqrt(m); var p = new List(); eratos(p, n); bool flag = true; foreach (var item in p) { if (m % item == 0) { Console.WriteLine(item+" "+m/item); flag = false; break; } } if (flag) { Console.WriteLine(1+" "+m); } } } static void eratos(List Prime, int n) { var a = new bool[n + 1]; a[0] = a[1] = true; int i; for (i = 2; i * i <= n; i++) { if (!a[i]) { Prime.Add(i); int j = i << 1; while (j <= n) { a[j] = true; j = j + i; } } } for (; i <= n; i++) if (!a[i]) Prime.Add(i); } } }