Greg Gianforte, the Montana Republican who won a House special election after body-slamming a reporter, on Wednesday issued a formal apology, admitting full responsibility and saying he would donate $50,000 to a nonprofit group that promotes press freedom.