C语言(1)素数距离问题
来源:互联网 发布:只有我知双语未删减版 编辑:程序博客网 时间:2024/05/11 01:45
如果输入的整数本身就是素数,则输出该素数本身,距离输出0
- 输入
- 第一行给出测试数据组数N(0<N<=10000)
接下来的N行每行有一个整数M(0<M<1000000), - 输出
- 每行输出两个整数 A B.
其中A表示离相应测试数据最近的素数,B表示其间的距离。 - 样例输入
36810
- 样例输出
5 17 111 1
#include <stdio.h>#include <math.h>/*素数距离问题*//*求是否为素数*/int func(int n){if(n<2){return -1;}int i,j=0;for(i=2; i<=sqrt(n); i++){if(n%i==0){j=1;break;}}if(j == 1){return 1;}else{return 0;}}int main(void){/*n组数据,m数组装数据,lenl向左步数,lenr向右步数*//*yesl向左能否找到素数; rel向左找到的素数,rer*/int m[100000]={0},n,i,j,lenl,lenr,yesl,rel,rer;scanf("%d", &n);for(i=0; i<n; i++){scanf("%d", &m[i]);}for(i=0; i<n; i++){lenl=0;yesl=0;rel=0;/*向左找素数*/for(j=m[i]; j>2; j--){if(0 == func(j)){yesl=1;rel=j;break;}lenl++;}lenr=0;//yesr=0;rer=0;/*向右找素数*/for(j=m[i]; ; j++){if(0 == func(j)){//yesr=1;rer=j;break;}lenr++;}//printf("yesl lenl rel:%d %d %d: lenr rer: %d %d\n", yesl, lenl, rel , lenr, rer);if(1 == yesl){if(lenl <= lenr){printf("%d %d\n", rel, lenl);}else{printf("%d %d\n", rer, lenr);}}else{printf("%d %d\n", rer, lenr);}}return 0;}
阅读全文
0 0
- C语言(1)素数距离问题
- c语言之素数距离问题
- C语言 南阳理工ACM 24.素数距离问题
- c/c++素数距离问题
- 寻找距离某数最近的素数(C语言)
- 06-语言入门-06-素数距离问题
- 判断素数问题(C语言实现)
- 判断素数问题(C语言)
- 判断素数问题(C语言实现)
- C语言(17)孪生素数问题
- C语言(20)素数求和问题
- c语言素数环问题(回溯)
- 素数距离问题(南阳24)
- 素数距离问题(水题一个)
- 素数距离问题
- NYOJ - 素数距离问题
- 素数距离问题
- NYOJ24-素数距离问题
- HDU-6040 Hints of sd0061
- error C2146: 语法错误: 缺少“)”(在标识符“,dtpSelected”的前面) 之中英文输入法的重要性
- 【视频开发】【Live555】摄像头采集,264编码,live555直播
- flask前台数据通过ajax传递到后台之点赞与视频播放量
- 基本数据类型和运算符
- C语言(1)素数距离问题
- C程序编译过程浅析
- Python 日志
- java中多线程与单双核关系
- Java 8 Stream API
- JavaScript RegExp对象
- 【Android 】【多媒体】stagefrightplayer框架
- C++ & Pascal——NOIP2016提高组day2 t3——愤怒的小鸟
- c++ boost 库中提供的share_ptr(智能指针)