• 质数和分解


    质数和分解(normal)

    Time Limit:1000MS  Memory Limit:65536K
    Total Submit:178 Accepted:66 

    Description 

    任何大于 1 的自然数 n,都可以写成若干个大于等于 2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式: 
    9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7 。 
    这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。 
    试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。 


    Input 

    (prime.in)文件中的每一行存放一个自然数 n , 2≤n≤200。

    Output 

    (prime.out)依次输出每一个自然数 n 的本质不同的质数和表达式的数目。

    Sample Input 


    2

    Sample Output 


    1

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    using namespace std;
    int f[300]={0},a[300],ans[300];
    int k=0,n;
    void zs()
    {
    	for (int i=2;i<=n;i++)//筛子 
    	  if (!f[i])
    	    {
    	    	k++;
    	    	a[k]=i;
    	    	int j=i;
    	    	while (j<=n)
    	    	  {
    	    	  	 f[j]=1;
    	    	  	 j+=i;
    			  }
    		}
    	
    	  
    }
    int main()
    {
    	scanf("%d",&n);
    	ans[0]=1;
    	zs();
    	for (int i=1;i<=k;i++)
    	  for (int j=a[i];j<=n;j++)
    	    ans[j]+=ans[j-a[i]];//转移方程 
    	cout<<ans[n];
    	return 0;
    } 
    
    
    /*
    样例 
    9 
    9以内的质数   0 1 2 3 4 5 6 7 8 9
    2            1 0 1 0 1 0 1 0 1 0
    3                  1 1 1 1 1 2 2
    5                      2 1 2 2 3 
    7                          3 3 4
    */
    

      

    I'm so lost but not afraid ,I've been broken and raise again
  • 相关阅读:
    架构之道(5)
    项目的命名规范
    semantic框架
    jquery.timepicker.js
    jquery.marquee.js
    CkEditor
    快速测试,其实没什麽大不了
    架构之道(4)
    架构之道(3)
    子网划分与子网掩码
  • 原文地址:https://www.cnblogs.com/sjymj/p/5325714.html
Copyright © 2020-2023  润新知