discrete math gcds