素数距离问题

时间限制: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>
int main()
{ int s(int x);
int n;
scanf("%d",&n);
while(n--)
{
int m,a,b,i;
scanf("%d",&m);
if(s(m))
printf("%d 0\n",m);
else
for(i=1;i<m;i++)
{
if(s(m-i))
{
printf("%d %d\n",m-i,i);
break;
}
else if(s(m+i))
{
printf("%d %d\n",m+i,i);
break;
}
}
}
return 0;
}
int s(int x)
{
int i,t=1;
for(i=2;i<x;i++)
{
if(x%i==0)
{
t=0;
break;}
}
return t;
}
下面是最优程序:

#include<iostream>
#include<cmath>
using namespace std; bool isprime(int n)
{
for(int k=2;k<=sqrt((double)n);k++)
if((n%k)==0)
return false;
return true;
}
int main()
{
int n;
cin>>n;
while(n--)
{
int num,i,j;
cin>>num;
if(num==1)
{
cout<<"2 1"<<endl;
continue;
}
for(i=num;!isprime(i);i--);
for(j=num;!isprime(j);j++); if((num-i)<(j-num))
cout<<i<<' '<<(num-i)<<endl;
else if((num-i)>(j-num))
cout<<j<<' '<<(j-num)<<endl;
else if((num-i)==(j-num))
cout<<i<<' '<<(num-i)<<endl;
}
}

最新文章

  1. 安卓Design包之超强控件CoordinatorLayout与SnackBar的简单使用
  2. kmeans算法c语言实现,能对不同维度的数据进行聚类
  3. 修改PUTTY支持保存密码
  4. A trip through the Graphics Pipeline 2011_05
  5. XE6移动开发环境搭建之IOS篇(2):安装VM9虚拟机(有图有真相)
  6. [QualityCenter]设置工作流脚本-缺陷字段值发生变化时的处理
  7. Ehcache(06)——监听器
  8. poj2723
  9. 转:Nginx 日志文件切割
  10. strtotime的几种用法区别
  11. OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们
  12. C 指针的几个注意点
  13. 07 训练Tensorflow识别手写数字
  14. .Net Core中的通用主机(二)——托管服务
  15. day 01 python基础
  16. 【LOJ#6283】数列分块7
  17. java 字符串中参数化符号${}的解析
  18. hiho #1014 : Trie树(模板)
  19. leetcode 217&mdash;Contains Duplicate
  20. MySQL多实例(二)

热门文章

  1. Libevent 学习笔记 (1)——Libevent 2.0安装与简单演示样例
  2. Android之QQ授权登录获取用户信息
  3. 关东升的《从零開始学Swift》即将出版
  4. uiautomator +python 安卓UI自动化尝试
  5. VC问题 IntelliSense:“没有可用的附加信息”,[请參见“C++项目 IntelliSense 疑难解答”,获得进一步的帮助]
  6. 哈理工2015暑假集训 zoj 2975 Kinds of Fuwas
  7. C# 文件的一些基本操作(转)//用C#读写ini配置文件
  8. 试用php的ping命令
  9. java input 实现调用手机相机和本地照片上传图片到服务器然后压缩
  10. go-swagger的简单使用