zoukankan      html  css  js  c++  java
  • Greedy:Sum of Consecutive Prime Numbers(POJ 2739)

                    

                      素数之和

      题目大意:一些整数可以表示成一个连续素数之和,给定一个整数要你找出可以表示这一个整数的连续整数序列的个数

      方法:打表,然后用游标卡尺法即可

      

    #include <iostream>
    #include <functional>
    #include <algorithm>
    #define MAX_N 10010
    
    using namespace std;
    
    static int primes_set[MAX_N], flag[MAX_N], p_sum;
    
    void inivilize(void);
    void solve(const int);
    
    int main(void)
    {
        inivilize();
        int n;
    
        while (~scanf("%d", &n))
        {
            if (n == 0) 
                break;
            solve(n);
        }
        return EXIT_SUCCESS;
    }
    
    void solve(const int n)
    {
        int s, t, sum, ans = 0;
        s = t = sum = 0;
    
        while (1)
        {
            while (primes_set[t] <= n && sum < n)
                sum += primes_set[t++];
            if (sum == n)
                ans++;
            if (sum < n)
                break;
            sum -= primes_set[s++];
        }
        printf("%d
    ", ans);
    }
    
    void inivilize(void)
    {
        int i = 2, j;
    
        memset(flag, 0, sizeof(flag));
    
        for (; i < MAX_N; i++)
        {
            if (!flag[i])
                primes_set[p_sum++] = i;
            for (j = 0; j < p_sum && primes_set[j] * i < MAX_N; j++)
                flag[primes_set[j] * i] = 1;
        }
    }

      

  • 相关阅读:
    勿忘初心
    欧拉函数与数论的结合UVA11426
    法雷级数
    欧拉函数及其应用
    poyla计数问题
    组合计数问题中容斥原理的应用
    数学问题当中的一些基本计数问题
    HDU4642博弈好题
    KMP算法在字符串中的应用
    UVA11722概率问题之线性规划
  • 原文地址:https://www.cnblogs.com/Philip-Tell-Truth/p/5155026.html
Copyright © 2011-2022 走看看