NYOJ 24(素数距离)

简介:   素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2   描述现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。

 

素数距离问题

时间限制: 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
 #include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1500000
bool visit[N];
void prim()
{
	int temp,i,j;
	temp=(int)sqrt(N+0.5);
	memset(visit,0,sizeof(visit));
	for(i=2;i<=temp;i++)
	if(!visit[i])
	{
		for(j=i*i;j<=N;j+=i)
			visit[j]=1;
	}
}
/* 
bool is_prim(int x) 
{  
	int s;
	for(s=2;s<=sqrt(1.0*x);s++) 
		 if(x%s==0)   
			 return false;
	return true;
 }
 */
int main()
{
	prim();
	int T,m;int i,j=0,k; int temp1,temp2;
	scanf("%d",&T); 
	while(T--) 
	{ 
		scanf("%d",&m); 
		 if(m==1)  
		 {  
			 printf("2 1\n");  
			 continue; 
		 } 
		 /*
		 for(i=m;i>1;i--) 
		 {
			 if( is_prim(m))
			 {
				 printf("%d %d\n",m,0);
				 break;
			 }
			 */
			for(j=m;j>=1;j--)
			{
				if(!visit[j])
					temp2=m-j;
				for(k=m+1;;k++)
					if(!visit[k])	
					{
						temp1=k-m;
						break;
					}
				if(!visit[j]&&!visit[k])
				{
					if(temp1>=temp2)
                                                           /*等号表示相同情况下应输出左边的*/

						printf("%d %d\n",j,temp2);
					else
						printf("%d %d\n",k,temp1);
					break;
				}
			}
	}							 
	return 0;
}


                

 

目录
相关文章
|
11月前
剑指offer 68. 骰子的点数
剑指offer 68. 骰子的点数
42 0
每日三题-最大正方形 、完全平方数 、目标和
每日三题-最大正方形 、完全平方数 、目标和
62 2
每日三题-最大正方形 、完全平方数 、目标和
POJ 2689 Prime Distance (埃氏筛 区间筛)
POJ 2689 Prime Distance (埃氏筛 区间筛)
88 0
AcWing 617. 距离
AcWing 617. 距离
61 0
AcWing 617. 距离
|
人工智能
BZOJ 3211: 花神游历各国【线段树区间开方问题】
3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 3514  Solved: 1306[Submit][Status][Discuss] Description    Input    Output ...
1188 0
|
机器学习/深度学习
LCM性质 + 组合数 - HDU 5407 CRB and Candies
CRB and Candies Problem's Link  Mean:  给定一个数n,求LCM(C(n,0),C(n,1),C(n,2)...C(n,n))的值,(n
994 0
|
机器学习/深度学习 Windows