nyoj 24-素数距离问题 (素数算法)
2024-09-01 17:30:26
24-素数距离问题
内存限制:64MB
时间限制:3000ms
Special Judge: No
accepted:21
submit:71
题目描述:
现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
输入描述:
第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000),
输出描述:
每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。
样例输入:
复制
3
6
8
10
样例输出:
5 1
7 1
11 1 分析:
直接根据素数算法判断待判断的数据是否为素数 核心代码:
bool is_prime(int n)
{
if(n <= ) return false;
for(int i = ; i <= sqrt(n); ++ i)
if(n%i == ) return false;
return true;
}
C/C++代码实现(AC):
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <queue>
#include <set>
#include <map>
#include <stack> using namespace std; bool is_prime(int n)
{
if(n <= ) return false;
for(int i = ; i <= sqrt(n); ++ i)
if(n%i == ) return false;
return true;
} int main ()
{
int t;
scanf("%d", &t);
while(t --)
{
int a, l, r;
scanf("%d", &a);
if (is_prime(a))
{
printf("%d 0\n", a);
continue;
}
for(int i = ; ; ++ i)
{
if(is_prime(a - i))
{
printf("%d %d\n", a-i, i);
break;
}
if(is_prime(a + i))
{
printf("%d %d\n", a+i, i);
break;
}
}
}
return ;
}
最新文章
- JS里面Data日期格式转换
- JQuery中使用Ajax实现诸如登录名检测等异步请求Demo
- My Game --文件读取数据
- Python体验(10)-图形界面之计算器
- apache2.4域名配置参数
- 16_采用SharedPreferences保存用户偏好设置参数
- WebView相关设置
- google 搜索url详解
- 在WIN7/8下把XP装入VHD (上)
- Windows 桌面和文件夹的右键->;打开命令行窗口
- hibernate框架学习笔记10:HQL查询详解
- 《ECMAScript6入门》___阮一峰 笔记
- 富文本编辑器Quill(一)简单介绍
- Django之Django终端打印SQL语句
- 搭建openstf平台的那些事
- 一、python基本语法元素(温度转换)
- delete content on the right of cursor, Mac
- OpenGL ES: 纹理采样 texture sample
- TypeScript 之 模块
- 多线程操作C++ STL vector出现概率coredump问题及尽量避免锁的双缓冲队列