#include <iostream>
#include<sstream>
#include <string>
int gcd( int m, int n )
{
	// ?????°?????????????????´??????????????????
	if ( ( 0 == m ) || ( 0 == n ) )
		return 0;
	
	// ???????????????????????????
	while( m != n )
	{
		if ( m > n ) m = m - n;
		else         n = n - m;
	}
	return m;
}//gcd
int lcm( int m, int n )
{
	// ?????°?????????????????´??????????????????
	if ( ( 0 == m ) || ( 0 == n ) )
		return 0;
	
	return ((m / gcd(m, n)) * n); // lcm = m * n / gcd(m,n)
}//lcm
int main() {
  std::string s;
  int a{},b{};
  
  while (std::getline(std::cin, s)) {
    std::stringstream ss;
    ss<<s;
    ss>>a>>b;
    std::cout<<gcd(a,b)<<' '<<lcm(a,b)<<std::endl;
  }
  return 0;
}