Prime Gap

这里直接写中文了

Descriptions:

对于一个数n,若n为素数则输出0,否则找到距离n最小的两个素数,一个大于n,一个小于n,输出他们的差(正数)

Input

多组输入

每行包含一个数n

若n为0,程序结束

Output

对于每个测试数据,输出一个答案占一行

Sample Input

10

11

27

2

492170

0

Sample Output

4

0

6

0

114

题目链接:

https://vjudge.net/problem/UVA-1644

水题,先求质数表,预先处理出质数,然后输入n,若n为质数,输出0,若不为,可从第2个质数往后扫,当出现第一个大于n的数时,即可将他减去上一个质数,即为答案。

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define ME0(x) memset(x,0,sizeof(x))
using namespace std;
int T;
int n;
int isprime[];//判断这里面哪个数是素数
int ans[];//把素数全部存进一个数组,方便查找
void eratos(int x)//求素数表
{
for(int i=; i<=x; ++i)
isprime[i]=true;
isprime[]=isprime[]=false;
for(int i=; i<=x; ++i)
{
if(isprime[i])
{
int j=i+i;
while(j<=x)
{
isprime[j]=false;
j+=i;
}
}
}
}
void solve()
{
if(isprime[n])
{
cout<<<<endl;
return;
}
else
{
for(int i=; ;++i)
{
if(ans[i]<n&&ans[i+]>n)
{
cout<<ans[i+]-ans[i]<<endl;
return;
}
} }
}
int main()
{
int j=-;
eratos();
for(int i=; i<=; ++i)
if(isprime[i])
ans[++j]=i;
// for(int i=0; i<=10; ++i)
// cout<<ans[i]<<endl;
while(cin>>n,n)
{
solve();
}
}

最新文章

  1. linux常用命名复习
  2. java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”
  3. JavaScript的Eval与JSON.parse的区别
  4. 【BZOJ】1251: 序列终结者(splay)
  5. ASP.NET MVC3在页面上获取当前控制器名称、Action名称以及路由参数
  6. haskell Types 和 Typeclasses
  7. 足球3v3心得
  8. Tomcat在Linux上安装
  9. 【Java每日一题】20170113
  10. POJ 1743 不可重叠的最长重复子串
  11. js正则表达式之人民币匹配
  12. nn.ReLU(inplace=True)中inplace的作用
  13. BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)
  14. 后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案
  15. 内存proc详解
  16. java 泛型 checkcast
  17. Magpie
  18. display_css
  19. C#不用union,而是有更好的方式实现
  20. windows和Ubantu双系统安装图解

热门文章

  1. Vue 实现 登陆后打开主页面(登陆组件 + 主页面组件)
  2. 题解 [HNOI2004]宠物收养场
  3. jquery bind()方法 语法
  4. win7系统扩展双屏幕时,开启两个屏幕下都显示任务栏,第三方插件
  5. OpenCV使用Cmake来管理工程
  6. 欧拉函数(线性筛)(超好Dong)
  7. 本地创建的项目使用版本管理(git)推送至远端。
  8. Centos安装成功后配置网络
  9. UCenter网站部署
  10. HDU 4738 Caocao&#39;s Bridges ——(找桥,求联通块)