ssl1197-质数和分解【dp练习】
来源:互联网 发布:西电网络信息安全学院 编辑:程序博客网 时间:2024/06/18 18:42
Description
任何大于 1 的自然数 n,都可以写成若干个大于等于 2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:
9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。
这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。
试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。
Input
Output
Sample Input
任何大于 1 的自然数 n,都可以写成若干个大于等于 2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:
9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。
这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。
试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。
Input
每一行存放一个自然数 n , 2≤n≤200
Output
输出每一个自然数 n 的本质不同的质数和表达式的数目
Sample Input
1
1
解题思路
这道题(TM)一看就是方案数水的一匹。
代码:
#include<cstdio>
int f[201],n,s[47],k;
int main()
{
scanf("%d",&n);
bool flag;
for (int i=2;i<=n;i++)
{
flag=true;
for (int j=2;j<=i/2;j++) if (i%j==0) {flag=false; break;}
if (flag)
{
k++;
s[k]=i;
}
}//筛1-n里的素数
f[0]=1;//初始化
for (int i=1;i<=k;i++)
if (s[i]<=n)//判断这个素数是否在1-n的范围内
//其实没必要╮(╯_╰)╭
for (int j=0;j<=n-s[i];j++)
f[j+s[i]]+=f[j];//累加方案数
printf("%d",f[n]);
}
阅读全文
0 1
- ssl1197-质数和分解【dp练习】
- (ssl1197)P2563 质数和分解
- python练习1 质数分解
- 【cqbzoj】:1330 Prime DP(Ahio2001 质数和分解)
- 质数和分解问题
- 质数和分解问题
- 质数和分解
- 【9911】质数和分解
- 质数和分解
- 质数和分解(prime)
- SSL_1197 质数和分解
- 【Ahoi2001 Problem2】质数和分解
- (ssl 1197)质数和分解
- 质数分解
- 质数分解
- 质数分解
- 质数和分解(动态规划)
- 质数和分解(动态规划)
- 通达OA系统管理员手册(一)
- 工控机和PLC通信
- 设计模式【装饰者模式】
- c#之泛型
- Matlab画小球沿轨迹运动
- ssl1197-质数和分解【dp练习】
- 利用javascript判断文件是否存在
- 基于命令的批量修改文件内容
- struts2上传文件
- 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
- 机器学习k—近邻算法实例
- jxl 生成excel文件 采用模板 动态插入行
- 第五周实践项目8 8皇后问题的回溯求解_栈结构
- Android图表库MPAndroidChart(十三)——简约的底部柱状图