1 条题解
-
0
C++ :
#include <iostream> #include <cstring> #include <cmath> #include <fstream> using namespace std; int nNum = 0; int nLim = 0; int* szValue = NULL; bool JudgeSum(const int& n) { int k = sqrt(n) + 1; for (int i = 2; i <= k; ++i) { if (n % i == 0) return false; } return true; } void InputData() { cin >>nNum >>nLim; szValue = new int[nNum + 1]; memset(szValue, 0, (nNum + 1) * sizeof(int)); for (int i = 0; i < nNum; ++i) { cin >>szValue[i]; } } void Search(int& nCnt, const int& n, const int& nPos, const int& nSum) { if (n == nLim) { if (JudgeSum(nSum)) ++nCnt; return; } for (int i = nPos; i < nNum; ++i) { Search(nCnt, n + 1, i + 1, nSum + szValue[i]); } } int CalcRes() { int nCnt = 0; Search(nCnt, 0, 0, 0); return nCnt; } int main() { InputData(); cout <<CalcRes(); delete []szValue; szValue = NULL; return 0; }
- 1
信息
- ID
- 656
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者