`
Simone_chou
  • 浏览: 192722 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

素数距离问题(素数表)

    博客分类:
  • NYOJ
 
阅读更多

素数距离问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:2
 
描述
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
 
输入
第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000),
输出
每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入
3
6
8
10
样例输出
5 1
7 1
11 1

 

   思路:

   打素数表。注意细节。

 

   AC:

#include<stdio.h>
#include<string.h>
int p[1200000];
void makeprimer()
{
	memset(p,0,sizeof(p));
	for(int i=2;i<=600000;i++)
	{
		if(!p[i])
		{
			for(int j=i+i;j<=1200000;j+=i)
				p[j]=1;
		}
	}
	return;
}

int main()
{
	int n;
	makeprimer();
	scanf("%d",&n);
	while(n--)
	{
		int a;
		scanf("%d",&a);
		if(a==1) 
		{
		 printf("2 1\n");
		 continue;
		}
		for(int i=0;i<=1200000;i++)
		{
			if(!p[a-i]) 
			{
			 printf("%d %d\n",a-i,i);
			 break;
			}
			if(!p[a+i])
			{
			 printf("%d %d\n",a+i,i);
			 break;
			}
		}
	}
	return 0;
}

 

    总结:

    1.1不是质数也不是合数,数学基础知识;

    2.范围是0到1000000,开的数组要大点,当输入99999的时候最接近的素数是1000003;

    3.注意细节。

 

 

分享到:
评论

相关推荐

    任意相邻两个素数之间的最大距离公式

    素数间隔,或者说相邻素数间的距离,是指连续两个素数差值的大小。由于素数在自然数中的分布并不是均匀的,随着数值的增大,素数间的间隔也会相应增大,但这个增大并不是简单的线性关系,而是有一定的规律性。 许...

    素数距离---ACM的一道题

    【素数距离问题概述】 素数距离问题是一道在计算机科学竞赛,如ACM(国际大学生程序设计竞赛)中常见的算法题目。它涉及到数论中的素数性质和搜索算法的应用。该问题要求寻找给定范围内距离最近和最远的相邻素数对。 ...

    原创的素数的求法 希望对您有用

    在信息技术领域,素数(质数)扮演着重要的角色,尤其是在密码学中。求素数的方法有很多,其中一种常见的方法是除余法,这里我们将深入探讨这个原创的求素数算法,希望对理解和应用素数有所帮助。 【问题描述】 ...

    素数的构造

    素数的性质和分布规律一直是数论研究的核心问题,例如素数定理描述了素数在大数范围内的分布情况。 接着,我们将目光转向“mds码”(Maximum Distance Separable codes,最大距离可分码)。这是一种线性纠错码,...

    C++判断素数,基础算法题

    用C/C++来判断一个数是否为素数,详细源码和注释

    素数的渗透 -(英文版)

    这里的步长指的是从一个素数到另一个素数的距离,通过分析这些行走路径的特性,可以揭示出素数分布的一些隐藏规律。这部分的研究不仅加深了我们对素数本质的理解,也为开发更高效的素数检测算法提供了可能的方向。 ...

    论文研究 - 关于哥德巴赫对素数的猜想

    最古老的哥德巴赫猜想(“每个甚至严格大于4的正整数都是两个质数之和... ,位于两个质数之间的距离的中间。 本文包含该证明的明确的其他补充内容,并坚持甚至将正整数作为素数对之和的戈德巴赫表示形式的存在和数目。

    cPP.rar_C语言计算素数

    在本压缩包“cPP.rar_C语言计算素数”中,包含了一个关于C++编程的实践案例,主要涉及两个知识点:一是如何用C++编写程序来判断并输出100到200之间的素数,二是如何定义一个平面点类(Point)并计算两点之间的距离。...

    acm_常用模版_素数标记_树状数组_线段树等

    素数打表是预先计算并存储一定范围内所有素数的过程。这个过程可以优化在之后的查询中,避免重复计算,提高效率。例如,可以构建一个列表或数组,存储从2到某个上限的所有素数。 **多个数相乘**: 在处理大量乘法...

    论文研究 - 哥德巴赫对素数猜想的证明

    文档中提到的“每个大于3的正合数,都位于两个素数之间的距离中间”,可能是指在正整数序列中,对于任意大于3的合数,都存在两个素数,使得这个合数恰好是这两个素数的和。这实际上暗示了哥德巴赫猜想在某种特定情形...

    c语言求解孪生素数小白使用

    孪生素数指的是间隔为2的两个相邻素数,因为它们之间的距离已经近的不能再近了,如同孪生兄弟一样,所以将这一对素数称为孪生素数。编程求出3〜1000以内的所有孪生素数。

    数论算法_艾孜尔江编.pdf

    接着,文件介绍了素数的求法,这包括了两种方法:一种是判断小范围内的整数是否为质数,另一种则是构造一个素数表,用于判断更大范围内的数是否为素数。判断质数的方法是,从2开始试除到该数的平方根。这是因为如果...

    筛选求质数.zip

    常见的动态规划问题包括背包问题、最长递增子序列、编辑距离等。 贪心算法:贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法。常见的贪心算法包括最小生成树算法中的Prim算法、Dijkstra算法等。 字符...

    MATLAB程序代码_创建动图_查找素数/_非线性方程组_求解圆心和半径_常微分方程_

    其次,"查找素数"是计算机科学中的基本问题。在`MATLAB查找素数的源程序代码`文件中,我们可以找到实现这个功能的算法。常见的方法有埃拉托斯特尼筛法,通过遍历所有自然数并标记其倍数,找出所有素数。MATLAB中可以...

    Python基础练习代码1:鸡兔同笼、10000以内的质数、求向量内积、向量求模、两向量夹角、4个维度内的随机字典、求相似度

    例如,可以计算两个字符串的Levenshtein距离,或者计算两个列表的交集和并集的大小来判断它们的相似程度。 以上练习涵盖了基础数学、逻辑推理以及Python中数据处理的核心概念,对于初学者来说,这些都是非常有价值...

    小四数学第20讲:综合复习(一)(学生版).doc

    了解这些质数对学习素数分解和数论概念有帮助。 4. **单位换算**:涉及长度、重量、时间等不同单位之间的转换,如米到厘米,千克到克等,是日常生活和数学计算的基础。 5. **加减法运算性质**:如交换律(a+b=b+a...

    UsefulProjects:质数。 显示所有质数并显示它们在数轴上的位置

    有用的项目 质数; 显示所有质数并显示它们在数轴上的位置。 游戏; 目前是单人乒乓球比赛。... 跟踪有氧运动的时间和距离,以提供速度和总数。 结果计算器; 允许学生或讲师计算总成绩和考试成绩。

    C_C++常用算法实例

    - 大范围判断:建立一个素数表,先填充一个数组p,表示每个数是否为素数。从2开始,找到素数后,将其倍数标记为非素数,直到遍历完所有可能的素数。 二、图论算法 1. 最小生成树(Minimum Spanning Tree, MST) - ...

    杭电计算机院 复试笔试题包括2016年

    此类问题通常称为“回文素数”问题。解题时,需要编写程序来判断一个数是否为素数,然后再判断这个数的逆序数是否也是素数。常见的素数判断算法是试除法,从2到该数的平方根进行判断。 2. 文本中数字提取与处理问题...

    2020年浙江省宁金华市小学五年级数学下册期中考试试卷及答案word可打印113505.pdf

    - 数轴理解:问题11(1)指出数轴上的数大小与距离原点的关系。 - 正方体的体积与表面积:问题11(2)说明两者性质不同,不能比较。 - 自然数概念:问题11(3)提到0是最小的自然数。 - 长方体特性:问题11(4)指出...

Global site tag (gtag.js) - Google Analytics