考題日期:2012/12/18
題號:1210
星等:2
語言:C++
題目:
題意:
輸入一數字後,找出其有幾種連續質數和組合。
程式:
#include <iostream>
using namespace std;
int main()
{
    int prime[10000];
    prime[0] = 2;
    int k = 1;
    int test;
    for( int i = 3; i < 10000 ; i++)
    {
        for(int j = 2 ; j < i; j++)
        {
            if(i % j == 0)
                break;
            if(j == i-1)
            {
                prime[k] = i;
                k++;
                break;
            }
        }
    }
    while(cin>>test)
    {
        int sum = 0 , c = 0 , j = 0;
        if(test == 0)
            break;
        for(int i = 0 ; test >= prime[i] ; i++)
        {
            sum += prime[i];
            while(sum > test)
            {
                sum -= prime[j];
                j++;
            }
            if(sum == test)
                c++;
        }
        cout << c << endl;
    }
}
測資: