题目22

素数距离问题

时间限制: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

 1 #include<stdio.h>
 2 #include<math.h>
 3 int main()
 4 {
 5     int m;
 6     scanf("%d",&m);
 7     while(m--)
 8     {
 9         int n,i,k,s,b,num,num1,d,d1,j,z,y;
10         scanf("%d",&n);
11         if(n==1)
12         printf("%d %d\n",2,1);
13         else
14         {
15             for(i=n;i>=0;i--)//寻找左边距离n最近的素数;
16             {
17                 b=0;
18                 for(z=2;z<=sqrt(i);z++)
19                 {
20                     if(i%z==0)
21                     b++;
22                 }
23                 if(b==0)//找出距离距离n最近素数与n之间距离;
24                 {
25                     num=i;
26                     d=n-num;
27                 }
28                 if(b==0)
29                 break;
30             }
31
32             for(i=n;i++;)//寻找右边距离n最近的素数;
33             {
34                 s=0;
35                 for(y=2;y<=sqrt(i);y++)
36                 {
37                     if(i%y==0)
38                     {
39                         s++;
40                     }
41                 }
42                 if(s==0)//找出距离距离n最近素数与n之间距离;
43                 {
44                     num1=i;
45                     d1=num1-n;
46                 }
47                 if(s==0)
48                 break;
49             }
50             if(d==d1)//题目格式;
51             printf("%d %d\n",num,d);
52             else
53             {
54                 if(d>d1)
55                 printf("%d %d\n",num1,d1);
56                 else
57                 printf("%d %d\n",num,d);
58             }
59         }
60     }
61     return 0;
62 } 


时间: 2024-08-25 17:33:38

题目22的相关文章

NYOJ题目22 素数求和

题目描述: 现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和.输入第一行给出整数M(0<M<10)代表多少组测试数据每组测试数据第一行给你N,代表该组测试数据的数量.接下来的N个数为要测试的数据,每个数小于1000输出每组测试数据结果占一行,输出给出的测试数据的所有素数和样例输入351 2 3 4 5811 12 13 14 15 16 17 181021 22 23 24 25 26 27 28 29 30样例输出104152 #inc

看看这些JavaScript题目你会做吗?

题目1 咋一看这题目,还以为答案选择B呢,其实正确答案为D,知道原因吗?接着往下看 map对数组的每个元素调用定义的回调函数并返回包含结果的数组,咋一看还以为它会像如下这样执行: function testFuc(a){ return parseInt(a); } console.info(["1","2","3"].map(testFuc)); 但事实上,map中回调函数的语法如下所示:function callbackfn(value, in

X-NUCA全国高校网安联赛7月训练题解

题目1: 很简单,看源码即可得到flag. A HIDDEN FLAG: FLAG{[email protected]} 题目2: post 提交q1=2016&q2=lol&q3=22&success=true即可 flag{W3ll_d0n3} 题目3: 这里base64decode是Normal 改成Admin的base64编码提交 flag{C00ki3_n0m_n0m_n0m} 题目4: show_source(__FILE__);$v1=0;$v2=0;$v3=0;$a

C++基础知识面试精选100题系列(21-30)[C++ basics]

[本文链接] http://www.cnblogs.com/hellogiser/p/100-interview-questions-of-cplusplus-basics-21-30.html [题目21] 运行下面的代码,输出结果? [代码] C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940   /*     version: 1.0     author: hellogiser

RHCE认证考前辅导

一一:Linux认证题库详细说明 注意事项 (1) RHCSA上午2.5小时,RHCE下午3.5小时,考生需对题目非常熟练. (2) 5样东西必带(身份证.1支黑色水笔.常用邮箱.姓名拼音.聪明的脑袋). (3) 考试的时候有3台机:1台物理机用来看题目/启动/关闭/重启虚拟机,不要动物理机上的任何配置:2台虚拟机用来考试的,所有的操作必需在虚拟机中完成. (4) 不要尝试SSH到其它人的机器,如果你的机器连过别人的机器,或者被别人连过,这2个人视为作弊. (5) 考试题目可以选择简体中文,但是

python练习集100题(21-40)

题目21:两个乒乓球队进行比赛,各出3人.甲队为a,b,c三人,乙队为x,y,z三人.以抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x.z比,请编程找出三队比赛名单. first_list=['x','y','z'] for i in first_list:        #i是a的对手,j是b的对手,k是c的对手     for j in first_list:         if(j!=i):                        for k in fir

[算法系列之二十二]包含T全部元素的最小子窗口

题目描述 给定一个包含一系列字符的集合T和字符串S,请在字符串S中找到一个最小的窗口,这个窗口中必须包含T中的所有字符. 例如, S = "ADOBECODEBANC" T = "ABC" 最小窗口是"BANC" 分析 这是一个有趣的问题,这个有趣的问题有多种方法来解决,最好的方法是非常简单,美丽的. 在这篇文章中,我首先说明了一个方法,是我第一次遇见这个问题时想到的.我的第一个方法有点复杂,同时也不是最好的解决方案(时间复杂度为O(NlgM))

网管随笔07---【记一次2008R2系统管理测验】

文:铁乐与猫/食梦貘2014年8月13日星期三                 周二[2008r2系统管理]一书班上进行了测验,因为自我感觉良好----课后作业实际操作的都做过了并且感觉理解了.也有每天课前预习划分好着重点.更有每天下午强忍着强烈的睡意愣是把课程一字不落的听完了----感觉整本书都理解了的情况下就算有一些遗忘点,按理也不会超过5题,而50道选择题,一题有两分,拿90分那是妥妥的阿.于是昨晚加上早上临时温习的只有前几章,(而事后证明这种临时温习会有看漏眼的地方,起到的效果是有但不是

Java实验3类方法重载构造方法

实验目的: 掌握类和方法的定义,对象的创建和使用. 掌握引用的概念和引用赋值. 掌握方法重载,构造方法的作用及使用. 掌握包的概念和使用. 一.实验内容: 实验题目1-1 定义一个名为Rectangle的类表示矩形,其中含有length.width 两个double型的成员变量表示矩形的长和宽.编写一个RectDemo应用程序,在main()方法中创建一个矩形对象rt,通过访问成员变量的方式为两个成员变量赋值,计算并输出它的面积. public class RecDemo { public st