Sum of Consecutive Prime Numbers(素数打表+尺取)
Description
numbers, so neither 7 + 13 nor 3 + 5 + 5 + 7 is a valid representation for the integer 20.
Your mission is to write a program that reports the number of representations for the given positive integer.
Input
Output
Sample Input
2
3
17
41
20
666
12
53
0
Sample Output
1
1
2
3
0
0
1
2 题目意思:给你一个数问你这个数可以有多少种方案的连续素数来组成,输出方案数。 解题思路:素数打表与尺取的组合应用。
https://www.cnblogs.com/wkfvawl/p/9092546.html
开始以为应该时间超不了限,暴力了一发,果然还真是出问题了
#include<stdio.h>
#include<string.h>
#define MAX 10010
long long s[MAX],isprime[MAX];
void prime()///素数打表
{
long long i,k,j;
k=;
memset(isprime,,sizeof(isprime));///初始化都认为是素数
isprime[]=;
isprime[]=;///0和1不是素数
for(i=; i<=MAX; i++)
{
if(isprime[i])
{
s[k++]=i;///保存素数
}
for(j=i*; j<=MAX; j+=i)
{
isprime[j]=;///素数的倍数都不是素数
}
}
}
int main()
{
int n,i,j,count,sum;
prime();
while(scanf("%d",&n)!=EOF)
{
if(n==)
{
break;
}
count=;
for(i=; i<; i++)
{
sum=;
for(j=i; j<; j++)
{
sum=sum+s[j];
if(sum==n)
{
count++;
break;
}
else if(sum>n)
{
break;
}
}
}
printf("%d\n",count);
}
return ;
}
这是正确的尺取法的答案
1 #include<stdio.h>
2 #include<string.h>
3 #define MAX 10010
4 long long s[MAX],isprime[MAX];
5 void prime()///素数打表
6 {
7 long long i,k,j;
8 k=1;
9 memset(isprime,1,sizeof(isprime));///初始化都认为是素数
10 isprime[0]=0;
11 isprime[1]=0;///0和1不是素数
12 for(i=2; i<=MAX; i++)
13 {
14 if(isprime[i])
15 {
16 s[k++]=i;///保存素数
17 }
18 for(j=i*2; j<=MAX; j+=i)
19 {
20 isprime[j]=0;///素数的倍数都不是素数
21 }
22 }
23 }
24 int main()
25 {
26 int n,i,j,count,sum;
27 prime();
28 while(scanf("%d",&n)!=EOF)
29 {
30 if(n==0)
31 {
32 break;
33 }
34 count=0;
35 sum=0;
36 j=1;
37 i=0;
38 while(1)
39 {
40 while(sum<n&&s[i+1]<=n)///s[i+1]<=n表示这个数是可以加的,即右端点还可以继续右移
41 {
42 sum=sum+s[++i];
43 }///开始先找到一个满足条件的序列,之后扩大左端点
44 if(sum<n)
45 {
46 break;
47 }
48 else if(sum>n)
49 {
50 sum=sum-s[j];
51 j++;
52 }///不断扩大右端点
53 else if(sum==n)///存在这样一个连续素数的集合
54 {
55 count++;
56 sum=sum-s[j];///继续扩大右端点
57 j++;
58 }
59 }
60 printf("%d\n",count);
61 }
62 return 0;
63 }
Sum of Consecutive Prime Numbers(素数打表+尺取)的更多相关文章
- POJ 2739 Sum of Consecutive Prime Numbers(素数)
POJ 2739 Sum of Consecutive Prime Numbers(素数) http://poj.org/problem? id=2739 题意: 给你一个10000以内的自然数X.然 ...
- poj 2739 Sum of Consecutive Prime Numbers 素数 读题 难度:0
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19697 ...
- ACM:POJ 2739 Sum of Consecutive Prime Numbers-素数打表-尺取法
POJ 2739 Sum of Consecutive Prime Numbers Time Limit:1000MS Memory Limit:65536KB 64bit IO Fo ...
- POJ 2739 Sum of Consecutive Prime Numbers【素数打表】
解题思路:给定一个数,判定它由几个连续的素数构成,输出这样的种数 用的筛法素数打表 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memo ...
- POJ 2739 Sum of Consecutive Prime Numbers( *【素数存表】+暴力枚举 )
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19895 ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- POJ2739 Sum of Consecutive Prime Numbers(尺取法)
POJ2739 Sum of Consecutive Prime Numbers 题目大意:给出一个整数,如果有一段连续的素数之和等于该数,即满足要求,求出这种连续的素数的个数 水题:艾氏筛法打表+尺 ...
- POJ 2739 Sum of Consecutive Prime Numbers(尺取法)
题目链接: 传送门 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Description S ...
- POJ2739 Sum of Consecutive Prime Numbers 2017-05-31 09:33 47人阅读 评论(0) 收藏
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25225 ...
- Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers http://poj.org/problem?id=2739 Time Limit: 1000MS Memory Limit: 6 ...
随机推荐
- [MYSQL][1]创建,修改,删除表
查看有哪些数据库: SHOW DATABASES; 创建,删除数据库: CREATE DATAABASE mydb; DROP DATABASE mydb; 查看有哪些表: SHOW TABLES; ...
- json提取嵌套数据
//数据 string html = "{\"code\":\"0000\",\"desc\":\"\",\& ...
- PHP留言板的实现思路
本文实例为大家分享了php留言板的实现思路,供大家参考,具体内容如下:1.创建一个存放留言信息的文件名2.获取表单中的数据给一个变量3.判断文件的时候存在4.对文件执行写的操作,在这之前,注意打开文件 ...
- linux 操作系统之磁盘管理
磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...
- Js 手指事件
1.Touch事件简介 pc上的web页面鼠标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如ipho ...
- hadoop生态搭建(3节点)-17.sqoop配置_单节点
# ==================================================================安装 sqoop tar -zxvf ~/sqoop-1.4.7 ...
- Linux计划任务crontab设置详解
crontab文件的格式: minute hour day month weekday username command minute:分,值为0-59 hour:小时,值为1-23 day:天,值为 ...
- vue组件化编程
vue文件包含3个部分 <template> <div></div> </template> <script> export default ...
- 成都Uber优步司机奖励政策(3月18日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 【SQLSERVER】从数据库文件mdf中拆分ndf的方法和利弊
一.数据文件格式 SQLSERVER中,数据库的文件后缀有3种:mdf.ndf.ldf. 如下图所示,DW_TEST.mdf.DW_TEST_HIS.ndf.DW_TEST.ldf 属于同一个数据库T ...