Given a collection Ᏺ of subsets of S ϭ {1, . . . , n}, set cover is the problem of selecting as few as possible subsets from Ᏺ such that their union covers S, and max k-cover is the problem of selecting k subsets from Ᏺ such that their union has maximum cardinality. Both these problems are NP-hard. We prove that (1 Ϫ o(1)) ln n is a threshold below which set cover cannot be approximated efficiently, unless NP has slightly superpolynomial time algorithms. This closes the gap (up to low-order terms) between the ratio of approximation achievable by the greedy algorithm (which is (1 Ϫ o(1)) ln n), and previous results of Lund and Yannakakis, that showed hardness of approximation within a ratio of (log2 n)/ 2 Ӎ 0.72 ln n. For max k-cover, we show an approximation threshold of (1 Ϫ 1/e) (up to low-order terms), under the assumption that P NP. Categories and Subject Descriptors: F.2.2 [Analysis of Algorithms and Problem Complexity]: Nonnumerical Algorithms and Problems–Computatio...