素数

描述

走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参观者的掌上展开。

在等候区的梦想花园中,参观者便开始了他们奇妙的体验之旅,等待中的游客可利用手机等终端参与互动小游戏,与梦想剧场内的虚拟人物Kr. Kong 进行猜数比赛。当屏幕出现一个整数X时,若你能比Kr. Kong更快的发出最接近它的素数答案,你将会获得一个意想不到的礼物。

例如:当屏幕出现22时,你的回答应是23;当屏幕出现8时,你的回答应是7;若X本身是素数,则回答X;若最接近X的素数有两个时,则回答大于它的素数。

 

 
输入
第一行:N 要竞猜的整数个数
接下来有N行,每行有一个正整数X
1<=N<=5 1<=X<=1000
输出
输出有N行,每行是对应X的最接近它的素数
样例输入
4
22
5
18
8
样例输出
23
5
19
7

 1 import java.text.NumberFormat;
 2 import java.util.Arrays;
 3 import java.util.Scanner;
 4 
 5 public class Main {
 6     public static void main(String[] args) {
 7         Scanner scanner=new Scanner(System.in);
 8         int T;
 9         int number;
10         int N=1100;
11         int flag[]=new int[N];
12         int i;
13         int j;
14         int distance;
15         int temp;
16         int result;
17         
18         for(i=0;i<N;i++)
19             flag[i]=0;
20         flag[0]=1;
21         flag[1]=1;
22         
23         for(i=2;i*i<N;i++){
24             if(flag[i]==0){
25                 for(j=i*i;j<N;j+=i)
26                     flag[j]=1;
27             }
28         }
29         
30         
31         
32         T=scanner.nextInt();
33         while(true){
34             if(T==0)
35                 break;
36             T--;
37             
38             number=scanner.nextInt();
39             
40             if(number==1){
41                 System.out.println("2");
42                 continue;
43             }
44             
45             temp=number;
46             while(true){
47                 if(flag[temp]==0){
48                     result=temp;
49                     distance=temp-number;
50                     break;
51                 }
52                 temp++;
53             }
54             
55             temp=number;
56             while(true){
57                 if(flag[temp]==0){
58                     if(number-temp<distance){
59                         result=temp;
60                     }
61                     break;
62                 }
63                 temp--;
64             }
65             
66             System.out.println(result);
67             
68         
69         }
70     } 
71 }

 

 
posted @ 2014-11-29 22:12  zqxLonely  阅读(201)  评论(0编辑  收藏  举报