int F(int n) { // 先考虑2种特殊情形 if (n == 1) return 1; if (n == 2) return 3; vector<int> ivec; ivec.push_back(1); ivec.push_back(2); int i = 3; vector<int>::iterator iter; while (ivec.size() != n) // 取前n个质数 { for (iter = ivec.begin()+1;iter != ivec.end()&& (i%(*iter) != 0); ++iter) ; if (iter == ivec.end()) ivec.push_back(i); i += 2; } // end of while // 求和 int sum = 0; for (vector<int>::const_iterator cter=ivec.begin(); cter!=ivec.end(); ++cter) sum += *cter; return sum; }