zoukankan      html  css  js  c++  java
  • UVA1210Sum of Consecutive Prime Numbers(素数打表 + 连续和)

    题目链接

    题意:输入一个数n (2 <= n <= 10000) 有多少种方案可以把n写成若干个连续素数之和

    打出10000之内的素数表,然后再打出每个可能得到的和的方案数的表

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 #include <cstdio>
     5 using namespace std;
     6 const int Max = 10000;
     7 int prime[Max + 5],total,flag[Max + 5];
     8 int dp[6000000];  //可以求出10000所有素数和为5000000多
     9 void get_prime()
    10 {
    11     memset(flag, 0, sizeof(flag));
    12     total = 0;
    13     for(int i = 2; i <= Max; i++)
    14     {
    15         if(flag[i] == 0)
    16         {
    17             prime[ ++total ] = i;
    18             for(int j = i; j <= Max / i; j++)
    19                 flag[i * j] = 1;
    20         }
    21     }
    22 }
    23 void init()
    24 {
    25     memset(dp, 0, sizeof(dp));
    26     int ans;
    27     for(int i = 1; i <= total; i++)
    28     {
    29         ans = 0;
    30         for(int j = i; j <= total; j++)  //第i个为起点,第j个为终点的素数段
    31         {
    32             ans += prime[j];
    33             dp[ans]++;
    34         }
    35     }
    36 }
    37 int main()
    38 {
    39     get_prime();
    40     init();
    41     int n;
    42     while(scanf("%d", &n) != EOF && n)
    43     {
    44         printf("%d
    ", dp[n]);
    45     }
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    Java访问Oracle服务器
    easyUI之练习
    easyUI之Tree(树)
    easyUI之Messager(消息窗口)
    easyUI之表单
    easyUI之Dialog(对话框窗口)
    easyUI之函数
    easyUI之window窗口
    easyUI之progressbar进度条
    easyUI之slider滑动条框
  • 原文地址:https://www.cnblogs.com/zhaopAC/p/5224466.html
Copyright © 2011-2022 走看看