added lcm and gcf functions