Prime Gap

2024-09-01 17:58
文章标签 prime gap

本文主要是介绍Prime Gap,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Prime Gap
时间限制: 5 Sec  内存限制: 128 MB
题目描述
The sequence of n ? 1 consecutive composite numbers (positive integers that are not prime and not equal to 1) lying between two successive prime numbers p and p + n is called a prime gap of length n. For example, ?24, 25, 26, 27, 28? between 23 and 29 is a prime gap of length 6.


Your mission is to write a program to calculate, for a given positive integer k, the length of the prime gap that contains k. For convenience, the length is considered 0 in case no prime gap contains k.


输入
The input is a sequence of lines each of which contains a single positive integer. Each positive integer is greater than 1 and less than or equal to the 100000th prime number, which is 1299709. The end of the input is indicated by a line containing a single zero.


输出
The output should be composed of lines each of which contains a single non-negative integer. It is the length of the prime gap that contains the corresponding positive integer in the input if it is a composite number, or 0 otherwise. No other characters should occur in the output.


样例输入
10
11
27
2
492170
0
样例输出
4
0
6
0
114

#include<iostream>

#include<math.h>
using namespace std;
#define MAX 1300000
   int x[MAX];
//列举所有质数,给定一个数,若为质数,则输出0
//否则,找到最近的俩个质数,相减求得结果 
bool isPrime(int n) 

     int i; 
     for(i = 2;i <= (int)sqrt(double(n)); i++)
         if((n % i) == 0)   
             return false; 
     return true; 
}
int main()
{
int n;
   int k,m,u=0;
   for(int j=2;j<MAX;j++)
   {
    if(isPrime(j))
    x[u++]=j;
   }
    while(cin>>n&&n!=0)
{
for(int i=0;i<u;i++)
{
if(x[i]==n)
{
cout<<0<<endl;
 break;
}
else
{
if(x[i]<n&&x[i+1]>n)
{
cout<<x[i+1]-x[i]<<endl;
break;
}

}

}

}

这篇关于Prime Gap的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127652

相关文章

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h

HDU 1016 Prime Ring Problem (深搜)

OJ题目 : click here ~~ 大概题意:n个数,形成一个环,使得相邻两个数的和为素数。以1开始,按字典序输出序列。 很简单的深搜。 AC_CODE int n;int visit[22];int num[22];int len;bool Is_prime(int x){for(int i = 2;i*i <= x;i++)if(x%i == 0) return

【SGU】113. Nearly prime numbers 合数分解

传送门:【SGU】113. Nearly prime numbers 题目分析:O(sqrt(N))。。 代码如下: #include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std ;#define rep( i , a , b ) for

【codechef】 Prime Distance On Tree【求树上路经长度为i的路径条数】【点分治+FFT】

传送门:【codechef】 Prime Distance On Tree 点分治+FFT水题……竟然n*n爆int没发现…… 而且NTT TLE,FFT跑的超级快…… my  code: my~~code: #include <bits/stdc++.h>using namespace std ;typedef long long LL ;#define clr( a , x ) m

prime(最小生成树)——POJ 1789

对应POJ题目:点击打开链接 Truck History Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit  Status  Practice  POJ 1789 Description Advanced Cargo Movement, Ltd.

USACO Section 1.5 Prime Palindromes

题意: 输入a和b  求 a和b之间所有既是素数同时又有回文性质的数  从小到大输出 思路: 如果枚举a到b之间所有的数再判断素数和回文那么复杂度会比O(n)还大  本题O(n)都会跪 因此思路转到能否 先得到所有素数再判断回文 或者 先得到所有回文的数在判断素数 本题我的做法是后者  说下原因 本题b最大为10^8  因此构造回文的数字可以枚举1~10000中的数字再对数字翻折

BLE Profile(GATT与GAP)

一. 引言 现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上,GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。 二. GAP 详细介绍GATT之前,需要了解GAP(Generic Access Profile),它在用来控制设备连接和广播。GAP使你的设备被其

关于蓝牙BLE的GAP/GATT

概述 蓝牙低功耗(BLE)是无线技术的一项关键创新,提供了能效和简化的连接。BLE功能的核心是通用访问配置文件(GAP,Generic Access Profile)和通用属性配置文件(GATT,Generic Attribute Profile),这对参与BLE技术的任何人来说都是必不可少的。 BLE起源于蓝牙特别兴趣组(SIG,Bluetooth Special Interest Grou

Local GAP - Financial Statement Version 【海外BS\PL报表】

业务场景: 基于海外IFRS等会计准则为客户定义一套BS\PL报表 BS - 从科目余额抓取 PL - 从利润中心报表抓取 会计报表版本的建立: 路径:IMG>财务会计(新)>总账会计核算(新)主数据>总账科目>定义会计报表版本 事务代码:OB58 Chart of Account : Operation Chart of Account; Build up the

__周赛(最小生成树(Prime))

将已经链接的边的权值设为0即可。 但是可能会超时,提交的时候,有一次显示超时,所以这个解法是有问题的,看到有171ms的,实力差的太大了,还是得使劲刷题。 /*2015-5-18 951ms*/#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f