Sum of Consecutive Prime Numbers UVALive - 3399

AC代码(素数筛打一下表然后暴力就好了)

Select Code

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int k , ans[100000];
void getprime(int n)
{
   k = 0;
    memset(ans, 0, sizeof(ans));
    ans[0] = ans[1] = 1;
    for(int i = 2; i<=n; i++)
    {
        if(!ans[i])
            for(int j = i*i; j<=n; j+=i)
                ans[j] = 1;
    }
    for(int i = 2; i<=n; i++)
    {
        if(!ans[i])
            ans[k++] = i;
    }
    ans[k] = '\0';
}
int main()
{
    std::ios::sync_with_stdio(false);
    int n, i, j;
    while(cin>>n&&n!=0)
    {
        int sm = 0, sum = 0;
        getprime(n);
        for(i = 0;i<k;i++)
        {
            sum = 0;
            for(j = i;j<k;j++)
            {
                sum+=ans[j];
                if(sum==n)
                {
                    sm++;
                    break;
                }
            }
        }
        printf("%d\n",sm);
     }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41524782/article/details/81782250