天天看點

Sum of Consecutive Prime Numbers pku 2739

Sum of Consecutive Prime Numbers

Time Limit:1000MS  Memory Limit:65536K

Total Submit:2391 Accepted:1494

Description

Some positive integers can be represented by a sum of one or more consecutive prime numbers. How many such representations does a given positive integer have? For example, the integer 53 has two representations 5 + 7 + 11 + 13 + 17 and 53. The integer 41 has three representations 2+3+5+7+11+13, 11+13+17, and 41. The integer 3 has only one representation, which is 3. The integer 20 has no such representations. Note that summands must be consecutive prime

numbers, so neither 7 + 13 nor 3 + 5 + 5 + 7 is a valid representation for the integer 20.

Your mission is to write a program that reports the number of representations for the given positive integer.

Input

The input is a sequence of positive integers each in a separate line. The integers are between 2 and 10 000, inclusive. The end of the input is indicated by a zero.

Output

The output should be composed of lines each corresponding to an input line except the last zero. An output line includes the number of representations for the input integer as the sum of one or more consecutive prime numbers. No other characters should be inserted in the output.

Sample Input

Sample Output

Source

Japan 2005

Sum of Consecutive Prime Numbers pku 2739

#include  < iostream >

Sum of Consecutive Prime Numbers pku 2739

#include  < vector >

Sum of Consecutive Prime Numbers pku 2739

using   namespace  std;

Sum of Consecutive Prime Numbers pku 2739

int  len;

Sum of Consecutive Prime Numbers pku 2739

vector  < int >  vec;

Sum of Consecutive Prime Numbers pku 2739

bool  IsPrime( int  k)

Sum of Consecutive Prime Numbers pku 2739
Sum of Consecutive Prime Numbers pku 2739

... {

Sum of Consecutive Prime Numbers pku 2739

   if(k==2) return true;

Sum of Consecutive Prime Numbers pku 2739

   if(k%2==0) return false;

Sum of Consecutive Prime Numbers pku 2739

   int i;

Sum of Consecutive Prime Numbers pku 2739

   for(i=3;i*i<=k;i+=2)

Sum of Consecutive Prime Numbers pku 2739

    if(k%i==0) return false;

Sum of Consecutive Prime Numbers pku 2739

   return true;    

Sum of Consecutive Prime Numbers pku 2739

}

Sum of Consecutive Prime Numbers pku 2739
Sum of Consecutive Prime Numbers pku 2739

void  Init()

Sum of Consecutive Prime Numbers pku 2739
Sum of Consecutive Prime Numbers pku 2739

... {

Sum of Consecutive Prime Numbers pku 2739

   int i;

Sum of Consecutive Prime Numbers pku 2739

   vec.push_back(0);

Sum of Consecutive Prime Numbers pku 2739

   for(i=2;i<10000;i++)

Sum of Consecutive Prime Numbers pku 2739

    if(IsPrime(i))

Sum of Consecutive Prime Numbers pku 2739

     vec.push_back(i);

Sum of Consecutive Prime Numbers pku 2739

   len=vec.size();

Sum of Consecutive Prime Numbers pku 2739

   for(i=1;i<len;i++)

Sum of Consecutive Prime Numbers pku 2739

    vec[i]+=vec[i-1];  

Sum of Consecutive Prime Numbers pku 2739

}

Sum of Consecutive Prime Numbers pku 2739

int  main()

Sum of Consecutive Prime Numbers pku 2739
Sum of Consecutive Prime Numbers pku 2739

... {

Sum of Consecutive Prime Numbers pku 2739

    Init();

Sum of Consecutive Prime Numbers pku 2739

    int i,n,cnt,j;

Sum of Consecutive Prime Numbers pku 2739

    while(cin>>n)

Sum of Consecutive Prime Numbers pku 2739
Sum of Consecutive Prime Numbers pku 2739

    ...{

Sum of Consecutive Prime Numbers pku 2739

      if(!n) break;

Sum of Consecutive Prime Numbers pku 2739

      cnt=0;

Sum of Consecutive Prime Numbers pku 2739

      for(i=0;i<len;i++)

Sum of Consecutive Prime Numbers pku 2739

        for(j=i+1;j<len;j++)

Sum of Consecutive Prime Numbers pku 2739

         if(vec[j]-vec[i]==n)

Sum of Consecutive Prime Numbers pku 2739

          cnt++;

Sum of Consecutive Prime Numbers pku 2739

      cout<<cnt<<endl;                  

Sum of Consecutive Prime Numbers pku 2739

    }

Sum of Consecutive Prime Numbers pku 2739

    return 0;

Sum of Consecutive Prime Numbers pku 2739

}

Sum of Consecutive Prime Numbers pku 2739
1
1
2
3
0
0
1
2      
2
3
17
41
20
666
12
53
0      

繼續閱讀