素数槽

Description

处于相邻的两个素数pp + n之间的n
-
1个连续的合数所组成的序列我们将其称为长度为n的素数槽。比如,‹24, 25, 26, 27, 28›是处于素数23和素数29之间的一个长度为6的素数槽。

你的任务就是写一个程序来计算包括整数k的素数槽的长度。假设k本身就是素数,那么觉得包括k的素数槽的长度为0。

Input

第一行是一个数字n,表示须要測试的数据的个数。后面有n行,每行是一个正整数kk大于1而且小于或等于的第十万个素数(也就是1299709)。

Output

对于输入部分输入的每个k。都相应输出一个非负整数,表示包括k的素数槽的长度。每个非负整数占一行。

Sample Input

5
10
11
27
2
492170

Sample Output

4
0
6
0
114
题意:
两个素数之间所有为连续的合数,一共同拥有n个这种数。那么这个素数槽的个数为n+1。题目给定你一个数,问你这个数在某个素数槽中。求这个素数槽的个数。
思路:
假设输入的数为素数,那么素数槽的个数为0,。

假设为合数。就从这个数開始,往左右两边分别递减或递增一个数,每次累计记录,直到遇到素数为止。

代码例如以下:
#include<cstdio>
bool p[1299710];
#include<cstring>
using namespace std;
void prime()
{
int i,j;
memset(p,0,sizeof(p));
for(int i=2;i<=1299709;i++)
{
if(!p[i])
{
for(int j=2;i*j<=1299709;j++)
p[i*j]=1;
}
}
}
int main()
{
int n,a,sum,k,t;
prime();
scanf("%d",&n);
while(n--)
{
sum=0;
scanf("%d",&a);
if(!p[a]||a==1)
{
printf("%d\n",sum);
continue;
}
t=a;
while(a--)
{
if(p[a])
sum+=1;
else
break; }
while(t++)
{
if(p[t])
sum+=1;
else
break;
} printf("%d\n",sum+2); }
return 0;
}


csu 1030: 素数槽的更多相关文章

  1. CSU1030素数槽

    Description 处于相邻的两个素数p和p + n之间的n - 1个连续的合数所组成的序列我们将其称为长度为n的素数槽.例如,‹24, 25, 26, 27, 28›是处于素数23和素数29之间 ...

  2. 素数槽csuoj

    超时代码: #include <iostream> using namespace std;//写一个函数判断是否是素数bool isPrime(int num){int i=2;//co ...

  3. csu 1552(米勒拉宾素数测试+二分图匹配)

    1552: Friends Time Limit: 3 Sec  Memory Limit: 256 MBSubmit: 723  Solved: 198[Submit][Status][Web Bo ...

  4. CSU 1552: Friends 图论匹配+超级大素数判定

    1552: Friends Time Limit: 3 Sec  Memory Limit: 256 MBSubmit: 163  Solved: 34[Submit][Status][Web Boa ...

  5. CSU 1416 Practical Number

    原题链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1416 结论题,具体判断方法请点击这个网址. 筛素数是肯定的,但一开始定的范围太大了,想当 ...

  6. csu 1552: Friends 二分图 + Miller_Rabin

    http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1552 把那n个数写两次,分成相同的两堆,判断相加是质数的,连一条边,然后找最大匹配,ans = ...

  7. CSU 1552 Friends(二分图 + 米勒测试)

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1552 Description On an alien planet, every e ...

  8. Boost信号/槽signals2

    信号槽是Qt框架中一个重要的部分,主要用来解耦一组互相协作的类,使用起来非常方便.项目中有同事引入了第三方的信号槽机制,其实Boost本身就有信号/槽,而且Boost的模块相对来说更稳定. signa ...

  9. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

随机推荐

  1. Android Gradle 学习笔记(七):Android Gradle 插件

    我们知道Android Gradle其实就是一个Gradle的一个第三方插件,它是由Google的Android团队开发的,基于Gradle构建的,和Android Studio完美搭配.相比于旧的构 ...

  2. MSSQL:删除系统作业计划

    use [msdb]declare @job_name varchar(100)set @job_name = N'EveryDayBackup.Subplan_1'--注:jobName为维护计划对 ...

  3. pjax使用小结

    简介 虽然传统的ajax方式可以异步无刷新改变页面内容,但无法改变页面URL,因此有种方案是在内容发生改变后通过改变URL的hash的方式获得更好的可访问性(如https://liyu365.gith ...

  4. Spark Streaming基础概念

    为了更好地理解Spark Streaming 子框架的处理机制,必须得要自己弄清楚这些最基本概念. 1.离散流(Discretized Stream,DStream):这是Spark Streamin ...

  5. PHP操作多进程

    在以往的开发项目中,要操作进程就会使用PHP自带的pcntl拓展.但是pcntl存在着许多的不足: pcntl没有提供进程间通信的功能 pcntl不支持重定向标准输入和输出 pcntl只提供了fork ...

  6. 用SQL Server验证用户名和密码

    用SQL Server验证用户名和密码,从页面输入的用户名和密码与数据库的用户名和密码进行匹配,正确则登入,错误则提醒. <form action="index.jsp" m ...

  7. 删除git上已经提交的文件

    1.先查看有哪些文件可以删除,但是不真执行删除 git rm -r -n job-executor-common/target/* -r  递归移除目录 -n 加上这个参数,执行命令时,是不会删除任何 ...

  8. 时序分析:ARMA方法(平稳序列)

    憔悴到了转述中文综述的时候了........ 在统计学角度来看,时间序列分析是统计学中的一个重要分支, 是基于随机过程理论和数理统计学的一种重要方法和应用研究领域.  时间序列按其统计特性可分为平稳性 ...

  9. c++ 枚举与字符串 比较

    读取字符串,然后将这个字符转换为对应的枚举. 如:从屏幕上输入'a',则转换为set枚举中对应的a,源代码如下: //关键函数为char2enum(str,temp); #include using ...

  10. Linux下Shell脚本输出带颜色文字

    文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置作用如下: 背景色为蓝色 ...