UVA1210Sum of Consecutive Prime Numbers(素数打表 + 连续和)
2016-02-28 11:58
337 查看
题目链接
题意:输入一个数n (2 <= n <= 10000) 有多少种方案可以把n写成若干个连续素数之和
打出10000之内的素数表,然后再打出每个可能得到的和的方案数的表
View Code
题意:输入一个数n (2 <= n <= 10000) 有多少种方案可以把n写成若干个连续素数之和
打出10000之内的素数表,然后再打出每个可能得到的和的方案数的表
#include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; const int Max = 10000; int prime[Max + 5],total,flag[Max + 5]; int dp[6000000]; //可以求出10000所有素数和为5000000多 void get_prime() { memset(flag, 0, sizeof(flag)); total = 0; for(int i = 2; i <= Max; i++) { if(flag[i] == 0) { prime[ ++total ] = i; for(int j = i; j <= Max / i; j++) flag[i * j] = 1; } } } void init() { memset(dp, 0, sizeof(dp)); int ans; for(int i = 1; i <= total; i++) { ans = 0; for(int j = i; j <= total; j++) //第i个为起点,第j个为终点的素数段 { ans += prime[j]; dp[ans]++; } } } int main() { get_prime(); init(); int n; while(scanf("%d", &n) != EOF && n) { printf("%d\n", dp ); } return 0; }
View Code
相关文章推荐
- 初学数据库——数据模型之关系数据模型
- Activity生命周期的理解
- sqlserver2014 sa无法登录[已解决]
- leetcode之Super ugly number
- 青蛙跳阶1小练习
- U盘加密解密步骤
- 2分钟读懂大数据框架Hadoop和Spark的异同
- maven的目录结构
- Linux进程的查看和调度分别使用什么命令?
- matlab安装配置VLFeat库
- ViewPager 详解(五)-----使用Fragment实现ViewPager滑动
- Clover启动mbr的win7/win8
- 2-9-扩展的线性单链表(带头结点)-线性表-第2章-《数据结构》课本源码-严蔚敏吴伟民版
- 机器学习系列(7)_机器学习路线图(附资料)
- Mac OS X上搭建Apache、PHP、MySQL的Web服务器
- java开发webservice的几种方式(转)
- 字符串和数字的全排列问题、前i位被i整除问题
- PAT (Top Level) Practise 1002 Business (35)
- 容器中swap成员函数
- app自动化的webView页面测试思路(appium工具)。