1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; const int N = 200; int n, p[N]; //质数表 int m; //输入m int f[209]; int main() { for (int i = 2; i <= 200; i ++) { bool flag = true; for (int j = 2; j * j <= i; j ++) { if (i % j == 0) { flag = false; break; } } if (flag) p[++ n] = i; } while (cin >> m) { memset(f, 0, sizeof(f)); f[0] = 1; for (int i = 1; i <= n; i ++) { for (int j = p[i]; j <= m; j ++) { f[j] += f[j - p[i]]; } } cout << f[m] << endl; } return 0; }
Pascal :
var n,i,j:longint; zhishu:boolean; f:array[0..200]of longint; begin read(n); f[0]:=1; for i:=2 to n do begin zhishu:=true; for j:=2 to trunc(sqrt(i)) do if i mod j =0 then zhishu:=false; if zhishu then for j:=i to n do f[j]:=f[j]+f[j-i]; end; write(f[n]); end.
- 1
信息
- ID
- 1004
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者